如何使用列表理解来计算总和

MyW*_*mia 0 python list-comprehension list python-3.x

如何使用列表推导获得此列表的累积总和:

list_comp=[1,4,9,16] 
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的,但它会打印列表中每个项目的两倍

print([x+x for x in list_comp])
Run Code Online (Sandbox Code Playgroud)

我希望结果是:list_comp = [1,5,14,30]但是我得到了这个:

>> [2, 8, 18, 32]
Run Code Online (Sandbox Code Playgroud)

Nil*_*ner 8

列表推导用于映射或过滤列表.它们不能具有内部状态,这是您有效执行此操作所需的状态.

但是在Python 3中有itertools.accumulate以下内容:

import itertools

print(list(itertools.accumulate([1, 4, 9, 16])))  # [1,5,14,30]
Run Code Online (Sandbox Code Playgroud)