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

Python如何用单行代码实现列表累加前缀和(输入[1,2,3]输出[1,3,6])

问题说明

给定初始列表 a = [1,2,3],需要通过单行代码得到前缀和结果 [1,3,6],原多行实现逻辑是遍历列表时逐次累加当前值,收集每一步的累加结果生成新列表。

单行实现方案

有两种通用的实现方式,均可以直接运行得到目标结果:

  • 方案1:使用标准库itertools.accumulate(推荐,兼容所有Python3版本,逻辑最简洁)
from itertools import accumulate; a = [1,2,3]; print(list(accumulate(a)))

accumulate默认就会按顺序做逐次累加运算,返回的迭代器转成列表后就是目标前缀和结果,和手写循环累加的逻辑完全一致。

  • 方案2:无导入实现,适合Python 3.8及以上版本,用海象运算符在列表推导中维护累加状态
a = [1,2,3]; print((k:=0, [k:=k+i for i in a])[1])

这个写法完全复现了原多行代码的执行流程:先初始化累加值k=0,遍历列表时不断更新k的累加结果,同时把每一步的k值收集到新列表里,不需要额外导入模块。

提示:如果运行环境的Python版本低于3.8,不要使用第二种方案,会触发海象运算符相关的语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 16:45:38