You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现列表元素累加传递求和的问题求助

解决列表前缀和问题

方法一:修改现有代码

你当前代码的问题是初始化了newList = [0],导致结果多了开头的0。只需要把newList初始化为空列表,每次循环将累加后的结果直接追加进去即可:

numbers = [2, 5, 3, 2]

newList = []
sumN = 0
for num in numbers:
    sumN += num
    newList.append(sumN)
print(newList)  # 输出: [2, 7, 10, 12]

方法二:使用itertools.accumulate(更简洁)

Python标准库的itertools模块提供了accumulate函数,专门用来生成前缀和序列,一行代码就能搞定:

from itertools import accumulate

numbers = [2, 5, 3, 2]
newList = list(accumulate(numbers))
print(newList)  # 输出: [2, 7, 10, 12]

accumulate会依次对列表中的元素进行累加操作,返回一个迭代器,转换成列表就是你要的结果。

内容的提问来源于stack exchange,提问作者Orion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 14:30:59