Lambda源自Lambda演算(AFAIK),最初是在Lisp中实现的,它基本上是一个匿名函数- 该函数没有名称,可以在线使用,换句话说,您可以将标识符分配给lambda函数在单个表达式中如下所示:
>>> addTwo = lambda x: x+2
>>> addTwo(2)
4
这将分配addTwo
给匿名函数,该函数接受1个参数x,并且在函数主体中将2加到x,它返回函数主体中最后一个表达式的最后一个值,因此没有return
关键字。
上面的代码大致等效于:
>>> def addTwo(x):
... return x+2
...
>>> addTwo(2)
4
使用它们的最好的地方是,当你真的不希望定义一个函数的名称,可能是因为该功能将只使用 一个 时间,而不是无数次,在这种情况下,你会过得更好用的函数定义。
使用lambdas的哈希树示例:
>>> mapTree = {
... 'number': lambda x: x**x,
... 'string': lambda x: x[1:]
... }
>>> otype = 'number'
>>> mapTree[otype](2)
4
>>> otype = 'string'
>>> mapTree[otype]('foo')
'oo'