在 Python 3.3 中itertools.accumulate()
,通常重复地对提供的迭代应用加法运算,现在可以将函数参数作为参数;这意味着它现在与functools.reduce()
. 粗略一看,现在两者之间的主要区别似乎是:
accumulate()
默认为求和,但不允许您显式提供额外的初始条件,reduce()
而不默认为任何方法,但允许您提供用于 1/0 元素序列的初始条件,并且accumulate()
先取可迭代,先reduce()
取函数。
两者之间还有其他区别吗?或者这只是两个函数的行为问题,最初不同的用途开始随着时间的推移而收敛?