gpt4 book ai didi

python - 具有三个参数的 Reduce 函数

转载 作者:太空狗 更新时间:2023-10-29 17:29:41 25 4
gpt4 key购买 nike

reduce 函数如何在 python3 中使用三个而不是两个参数工作。所以,对于两个,

tup = (1,2,3)
reduce(lambda x, y: x+y, tup)

我明白了。这将总结 tup 中的所有元素。但是,如果像下面这样给 reduce 函数三个参数,

tup = (1,2,3)
reduce(lambda x, y: x+y, tup, 6)

这将为您提供 12 的值。我查看了 python3 的文档,它说第三个参数是一个初始值设定项。也就是说,如果没有插入第三个参数,那么默认初始化程序是什么?

最佳答案

如果省略第三个参数,tup 中的第一个 值将用作初始值设定项。

或者,换句话说,reduce() 将可选的第三个参数放在第二个参数(如果存在)的值之前。

此外,这意味着如果第二个参数是一个序列,则第三个参数作为默认值,就像第二个参数只有一个元素(和没有显式初始化参数),将是默认返回值。

functools.reduce() documentation包括函数的 Python 版本:

def reduce(function, iterable, initializer=None):
it = iter(iterable)
if initializer is None:
value = next(it)
else:
value = initializer
for element in it:
value = function(value, element)
return value

请注意 initializer 在不是 None 时如何用作第一个值而不是 iterable 的第一个值。

关于python - 具有三个参数的 Reduce 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19589233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com