Python 3.x 如果lambda函数在python3中没有任何参数,该怎么办?
我最近读了一行代码,不明白它是什么意思,代码是Python 3.x 如果lambda函数在python3中没有任何参数,该怎么办?,python-3.x,lambda,arguments,Python 3.x,Lambda,Arguments,我最近读了一行代码,不明白它是什么意思,代码是 import collections d = collections.defaultdict(lambda : [-1, -1, -1]) 我对这里的lambda感到困惑。我只知道lamndax:x+1。通常,我们有一个参数用于lambda。如果我们没有这样的代码呢 非常感谢,是的,我们可以定义lambda函数而无需任何参数。但是,这将是无用的,因为将没有任何操作。让我们看一个简单的例子 get_5 = lambda: 5 print(get_
import collections
d = collections.defaultdict(lambda : [-1, -1, -1])
我对这里的lambda
感到困惑。我只知道lamndax:x+1
。通常,我们有一个参数用于lambda
。如果我们没有这样的代码呢
非常感谢,是的,我们可以定义lambda函数而无需任何参数。但是,这将是无用的,因为将没有任何操作。让我们看一个简单的例子
get_5 = lambda: 5
print(get_5()) # 5
因为lambda函数总是返回相同的值,所以我们可以给它分配一个变量。在没有任何参数的情况下使用lambda函数显然是对该特性的滥用
产生错误:
TypeError: first argument must be callable or None
因为list是不可调用的,但是lambda函数是可调用的。即使在python中没有lambda变量,也可以有效地使用lambda函数。 使用lambda函数的一般程序如下所示 在一般情况下,函数的用法是 如果是lambda 无变量 将返回与
x
相同的值
如果没有变量,lambda函数将保持空闲状态而不执行任何操作,因此可以在没有变量的情况下使用它来获得相同的答案。
在精确使用lambda时,没有操作变量只是额外的一行代码,但它是有效的
TypeError: first argument must be callable or None
def identity(x):
return x+1
lambda x:x+1
lambda :x