Python在列表中运行总和

Dan*_*rty 1 python numpy sum running-total cumulative-sum

鉴于以下列表:

a=[1,2,3]
Run Code Online (Sandbox Code Playgroud)

我想生成一个新列表,其中每个数字是它和它之前的值的总和,如下所示:

result = [1,3,6]
Run Code Online (Sandbox Code Playgroud)

逻辑:

1没有先前的值,所以它保持不变.

3是从第一个值(1)加到列表中的第二个数字的值(2)

6是来自前两个元素的1和2的总和,加上3的第三个值.

提前致谢!

gsm*_*fra 8

如果你想要一个 numpy 解决方案

from numpy import cumsum
result = list(cumsum(a))
Run Code Online (Sandbox Code Playgroud)


nie*_*mmi 7

Python就是itertools.accumulate为了这个目的:

>>> from itertools import accumulate
>>> a=[1,2,3]
>>> list(accumulate(a))
[1, 3, 6]
Run Code Online (Sandbox Code Playgroud)