关于python:麻烦理解lambda函数

Trouble understanding lambda functions

本问题已经有最佳答案,请猛点这里访问。

函数中到底发生了什么:

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

我知道一些lambda函数的作用,但我不习惯看到它们是这样写的。我对任何形式的代码都一窍不通。


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

句法糖用于:

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

也就是说,如果x == 6的值为true,则返回10,否则返回1。

就我个人而言,除了最简单的情况外,我更喜欢def形式,因为它允许多行函数,使调用可调用的开销更加明确,使分析函数的关闭更加简单,并使新的python程序员能够想到其他更复杂的代码对象(如类),而这些对象ch可以很容易地在运行时构建。


因为Python是一种具有功能特性的伟大语言,所以使用lambda可以方便地处理函数。您的示例等价于

1
2
3
4
if x == 6:
    return 10
else:
    return 1

如果需要将一个简单函数作为参数传递给代码中某个地方的另一个函数,那么lambda函数非常有用。