无法理解lambda函数

时间:2013-03-21 15:41:39

标签: python lambda

该功能究竟发生了什么:

lambda x: 10 if x == 6 else 1 

我知道一些lambda函数做了什么,但我不习惯看到它们像这样写。我是任何形式的代码的菜鸟。

2 个答案:

答案 0 :(得分:14)

some_function = lambda x: 10 if x == 6 else 1

是语法糖:

def some_function(x):
    return 10 if x == 6 else 1

意味着如果x == 6计算结果为True,则返回10,否则返回1。

就个人而言,我更喜欢def形式除了最简单的情况,因为它允许多行函数,使得更清楚调用可调用函数涉及什么样的开销,使分析函数的闭包更简单,并将新python程序员的思想打开到其他更复杂的代码对象(例如类),这些对象可以在运行时轻松构建。

答案 1 :(得分:2)

由于python是一种具有功能特性的优秀语言,因此您可以使用lambdas执行各种功能。 您的示例等同于

if x == 6:
    return 10
else:
    return 1
如果你需要将一个简单的函数作为参数传递给代码中某个地方的另一个函数,那么

lambda函数很有用。