Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如果lambda函数在python3中没有任何参数,该怎么办?_Python 3.x_Lambda_Arguments - Fatal编程技术网

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