Python lambda对所用参数的解释
我想询问一些非常简单的问题,关于lambda参数 我理解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
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被列表中的下一个元素替换: