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

Python如何用for循环或更实用方法实现列表累加生成新列表

列表前缀累加的实现方案

这类从首元素开始逐次累加的需求,本质是求列表的前缀和,常见实现方式有两种:

1. 基础for循环实现

完全贴合题目逻辑,不需要依赖额外第三方库:

list_1 = [2.03898103, 2.23708741, 1.68221573, 1.12352885, 0.56227805]
list_2 = []
# 维护累计变量,记录每次循环的累加值
current_total = 0
for num in list_1:
    current_total += num
    list_2.append(current_total)

运行后得到的list_2为:
[2.03898103, 4.27606844, 5.95828417, 7.08181302, 7.64409107]

注意:题目示例中直接给空列表按下标赋值(如list_2[0] = list_1[0])的写法会触发索引越界错误,空列表不存在对应下标元素,必须通过append方法追加内容。

2. 更高效简洁的标准库方法

Python标准库itertools提供的accumulate函数专门用于生成可迭代对象的前缀和序列,代码更简洁,处理大规模长列表时性能优于手动编写的循环:

from itertools import accumulate
list_1 = [2.03898103, 2.23708741, 1.68221573, 1.12352885, 0.56227805]
# 直接将accumulate生成的迭代器转为列表,逻辑和需求完全匹配
list_2 = list(accumulate(list_1))

该方法的输出结果和手动for循环实现完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 00:57:07