"lambda"在Python中意味着什么,以及使用它的最简单方法是什么?

TIM*_*MEX 18 python lambda

您能举例说明何时何何不使用Lambda?我的书给了我一些例子,但它们令人困惑.

med*_*iev 39

源自Lambda Calculus和(AFAIK)的Lambda最初是在Lisp中实现的,它基本上是一个匿名函数 - 一个没有名称的函数,并且在线使用,换句话说,你可以为一个标识符分配一个标识符. lambda函数在单个表达式中如下:

>>> addTwo = lambda x: x+2
>>> addTwo(2)
4
Run Code Online (Sandbox Code Playgroud)

这将分配addTwo给匿名函数,该函数接受1个参数x,并且在函数体中它将2添加到x,它返回函数体中最后一个表达式的最后一个值,因此没有return关键字.

上面的代码大致相当于:

>>> def addTwo(x):
...     return x+2
... 
>>> addTwo(2)
4
Run Code Online (Sandbox Code Playgroud)

除非您没有使用函数定义,否则您将为lambda分配一个标识符.

使用它们的最好的地方是,当你真的不希望定义一个函数的名称,可能是因为该功能将只使用一个时间,而不是无数次,在这种情况下,你将与一个函数定义更好.

使用lambdas的哈希树示例:

>>> mapTree = {
...     'number': lambda x: x**x,
...     'string': lambda x: x[1:]
... }
>>> otype = 'number'
>>> mapTree[otype](2)
4
>>> otype = 'string'
>>> mapTree[otype]('foo')
'oo'
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我真的不想为这些函数中的任何一个定义一个名称,因为我只在哈希中使用它们,因此我将使用lambdas.