我最近读了一行代码,不明白它是什么意思,代码是
import collections
d = collections.defaultdict(lambda : [-1, -1, -1])
我对这里的lambda
感到困惑。我只知道lamnda x: x+1
.通常,我们有一个论据lambda
.如果我们没有像这样的代码参数怎么办?
多谢
即使没有python中的lambda变量,也可以有效地使用Lambda函数。 使用lambda函数的一般过程如下
在一般功能的情况下,使用是
def identity(x):
return x+1
在λ的情况下
lambda x:x+1
无变量
lambda :x
将返回与x
相同的返回。
如果没有变量,lambda 函数将保持空闲状态,无需任何操作,因此可以在没有变量的情况下使用它来获得相同的答案。 在没有操作变量的 lambda 的精确使用中,只是一行额外的代码。但它是有效的。
是的,我们可以定义一个没有任何参数的 lambda 函数。但是,这将是无用的,因为没有什么可操作的。让我们看一个简单的例子。
get_5 = lambda: 5
print(get_5()) # 5
由于 lambda 函数始终返回相同的值,因此我们可以为其分配一个变量。使用没有任何参数的 lambda 函数是对此功能的明显滥用。
d = collections.defaultdict([-1, -1, -1])
产生错误:
TypeError: first argument must be callable or None
由于列表不可调用,但 lambda 函数是可调用的。