【发布时间】:2012-12-17 10:33:07
【问题描述】:
在 Python 3.3 中,itertools.accumulate() 通常重复地对提供的迭代应用加法运算,现在可以将函数参数作为参数;这意味着它现在与functools.reduce() 重叠。粗略一看,现在两者之间的主要区别似乎是:
-
accumulate()默认为求和,但不允许您显式提供额外的初始条件,而reduce()不默认为任何方法,但允许您提供用于 1/0 元素序列的初始条件,并且李> -
accumulate()先取可迭代,而reduce()先取函数。
两者之间还有其他区别吗?或者这只是最初不同用途的两个函数的行为问题,随着时间的推移开始收敛?
【问题讨论】:
-
accumulate 执行扫描en.wikipedia.org/wiki/Prefix_sum 而reduce 执行折叠en.wikipedia.org/wiki/Fold_(higher-order_function)
标签: python itertools python-3.3 functools