What would be an elegant and pythonic way to implement cumsum?
Alternatively - if there\'a already a built-in way to do it, that would be even better of course...
It's available in Numpy:
>>> import numpy as np
>>> np.cumsum([1,2,3,4,5])
array([ 1, 3, 6, 10, 15])
Or use itertools.accumulate since Python 3.2:
>>> from itertools import accumulate
>>> list(accumulate([1,2,3,4,5]))
[ 1, 3, 6, 10, 15]
If Numpy is not an option, a generator loop would be the most elegant solution I can think of:
def cumsum(it):
total = 0
for x in it:
total += x
yield total
Ex.
>>> list(cumsum([1,2,3,4,5]))
>>> [1, 3, 6, 10, 15]