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]
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…