基于索引列表的列表中的累积添加

Zen*_*nie 10 python numpy python-2.7

说我有清单, list_a = [100, 5, 1, 2, 200, 3, 1, 300, 6, 6]

另一个清单, ind_list = [0, 4, 7]

我想创建一个第三个列表,它将包含第一个列表的累积总和,它在每个索引上"重置" ind_list.

澄清一下,结果应该是 res_list = [100, 105, 106, 108, 200, 203, 204, 300, 306, 312]

Bin*_*ven 10

使用以下内容:

cs= np.cumsum(list_a)
for i in ind_list:
    if i==0:
        continue
    cs[i:]-=cs[i-1]
Run Code Online (Sandbox Code Playgroud)

结果:

cs
>>array([100, 105, 106, 108, 200, 203, 204, 300, 306, 312])
Run Code Online (Sandbox Code Playgroud)