小编典典

“ lambda”在Python中是什么意思,最简单的使用方式是什么?

python

您能否举一个示例以及其他示例来说明何时以及何时不使用Lambda?我的书给了我一些例子,但它们令人困惑。


阅读 213

收藏
2020-12-20

共1个答案

小编典典

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

除了不使用函数定义外,您还要为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'

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

2020-12-20