Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.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 lambda对所用参数的解释_Python_List_Lambda - Fatal编程技术网

Python lambda对所用参数的解释

Python lambda对所用参数的解释,python,list,lambda,Python,List,Lambda,我想询问一些非常简单的问题,关于lambda参数 我理解lambda的函数是如何工作的,但说到这个,我就搞不清楚哪些是参数 例如: from functools import reduce # Simple example so that I could understand based on the explanation from experts # here. You could modify as however you wish to explain it. product = re

我想询问一些非常简单的问题,关于lambda参数

我理解lambda的函数是如何工作的,但说到这个,我就搞不清楚哪些是参数

例如:

from functools import reduce

# Simple example so that I could understand based on the explanation from experts
# here. You could modify as however you wish to explain it.
product = reduce(lambda x, y: x + y, [1,2,3,4])
下面是一个比较简短的版本:

product = 0
for x in [1,2,3,4]:
    product = product + x
print(product)
现在,我的问题是
x
是列表的变量还是
y
是lambda的第一个示例中列表的变量?而
x
y
的默认值是什么(判断其中一个是否属于产品?因为我没有为“lambda示例”初始化初始值,只有我初始化的第二个示例。)

python中的
map()
接受一个列表,并返回一个列表,其中每个元素都已根据某个函数进行了修改。您似乎希望将列表作为输入并获得一个数字,在这种情况下,
map()
和lambda函数都不是特别有用的,而一个简单的
for
循环可能是最好的方法。

使用:

product = reduce(lambda x, y: x + y, [1, 2, 3, 4])
每次调用lambda函数时,
x
参数是正在运行的总数(或累计值),
y
将是iterable
[1,2,3,4]
的连续元素


由于您没有指定可选的初始值设定项参数,
x
的值将设置为iterable的第一个元素(
1
)第一次调用
lambda
,以iterable的第二个元素开头,否则
x
将是作为初始值设定项传递的值,第一次调用将iterable的第一个参数作为
y
参数传递。

注意
product=map(λx,y:x+y[1,2,3,4])
尝试转换为列表时出错。您似乎混淆了。此外,您似乎混淆了乘积和sum。抱歉,我编写了错误的代码。我本来打算使用reduce,但我已将其更改。product可以是产品价格的名称,而不仅仅是用于*的产品。是的,我实际上引用了此示例.Ah,我是在编辑之前键入的。x和y最初设置为列表中的第一个和第二个元素,在每个步骤中,x被上一个操作的结果替换,y被列表中的下一个元素替换: