Reduce函数在python中使用三个参数失败,使用两个参数运行正常

Reduce函数在python中使用三个参数失败,使用两个参数运行正常,python,python-3.x,lambda,Python,Python 3.x,Lambda,有人能解释为什么#1工作正常而#2出现故障。来自: 将两个参数的函数累计应用于iterable[…]的项 这意味着函数应该接受2个参数,而不是3个。如果你想一想,第三个论点毫无意义。第一个参数是先前减少的值,第二个参数是下一个值 在第三个示例中,第三个参数是可选的,因此当只传递了两个参数时,它仍然有效。阅读文档,因此iterable的两个参数的累积将减少到最终结果。谢谢 from functools import reduce o = [20,30,100,60,80,90] #1 prin

有人能解释为什么#1工作正常而#2出现故障。

来自:

将两个参数的函数累计应用于iterable[…]的项

这意味着函数应该接受2个参数,而不是3个。如果你想一想,第三个论点毫无意义。第一个参数是先前减少的值,第二个参数是下一个值


在第三个示例中,第三个参数是可选的,因此当只传递了两个参数时,它仍然有效。

阅读文档,因此iterable的两个参数的累积将减少到最终结果。谢谢
from functools import reduce
o = [20,30,100,60,80,90]

#1 
print(reduce((lambda x,y:x+y),o)) # returns 380
#2
print(reduce((lambda x,y,z:x+y+z),o)) # FAILS
#3
print(reduce((lambda x,y,z=10:x+y+z),o)) # returns 430