如果省略第三个参数,那么from中的 第一个 值tup
将用作初始化程序。
或者,换句话说,将reduce()
可选的3rd参数放在第二个参数的值之前(如果存在)。
而且,这意味着如果第二个参数是一个 空 序列,则第三个参数将用作默认值,就像只有 一个 元素(没有显式的初始化器参数)的第二个参数一样,它将是默认的返回值。
该functools.reduce()
文档包括该功能的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