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

如何在Python中基于list1生成累加和列表list2?

用循环实现Python列表的前缀累加和

核心思路

要生成目标列表list2,我们需要维护一个累加器变量,遍历原列表时逐步累加元素,每一步的累加结果就是list2对应位置的元素。这种方法时间复杂度为O(n),效率很高。

实现代码(推荐高效版)

list1 = [1654, 2175, 2478, 2132, 2250, 2304, 2258, 2111, 1683, 2036, 2089, 1743, 1920, 1854, 2251, 1505, 1698, 1126, 1695, 1590]
list2 = []
total = 0  # 初始化累加器

for num in list1:
    total += num  # 将当前元素加入累加器
    list2.append(total)  # 把累加结果存入list2

# 验证结果(可选)
print(list2)

代码解释

  1. 初始化total为0,用来持续记录当前的累加总和
  2. 遍历list1中的每个元素,每次将元素值加到total上,更新累加状态
  3. 把更新后的total添加到list2的末尾,这样list2的第i个元素正好对应list1前i+1个元素的和

另一种基于索引的写法(仅作参考,效率较低)

如果你想通过索引遍历实现,也可以这样写,但数据量大时会比上面的方法慢很多:

list1 = [1654, 2175, 2478, 2132, 2250, 2304, 2258, 2111, 1683, 2036, 2089, 1743, 1920, 1854, 2251, 1505, 1698, 1126, 1695, 1590]
list2 = []

for i in range(len(list1)):
    # 截取前i+1个元素并求和
    current_sum = sum(list1[:i+1])
    list2.append(current_sum)

print(list2)

注:这种方法每次循环都要重新计算前i+1个元素的和,时间复杂度为O(n²),不建议用于大规模数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 04:03:22