什么是实现cumsum的优雅而Python式的方式?
或者-如果已经有内置方法可以做到,那当然更好。
最佳答案
在Numpy中可用:
>>> import numpy as np
>>> np.cumsum([1,2,3,4,5])
array([ 1, 3, 6, 10, 15])
或者从python 3.2开始使用
itertools.accumulate
:>>> from itertools import accumulate
>>> list(accumulate([1,2,3,4,5]))
[ 1, 3, 6, 10, 15]
如果没有Numpy选项,那么生成器循环将是我能想到的最优雅的解决方案:
def cumsum(it):
total = 0
for x in it:
total += x
yield total
例如
>>> list(cumsum([1,2,3,4,5]))
>>> [1, 3, 6, 10, 15]
关于python - 优雅的pythonic cumsum,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9258602/