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

Python实现列表相邻元素累加返回新列表的精简写法咨询

精简实现相邻数值累加的方案

你当前手写的循环逻辑符合需求,但代码存在缩进错误(first_value 后续的代码块多缩进了一层,直接运行会报错)。如果要压缩代码量,可以借助Python内置的序列操作函数实现,不需要手动维护前序值变量、也不需要写索引判断分支。

方案1:无依赖列表推导实现(最推荐)

核心思路是构造一个首项为初始值0、后续项为原列表除最后一位外所有元素的错位序列,和原列表按位求和即可:

my_list = [1,2,3,5,6]
result = [cur + pre for pre, cur in zip([0] + my_list[:-1], my_list)]
print(result) # 输出 [1, 3, 5, 8, 11]

这个写法天然兼容空列表输入,不会抛出索引异常。

方案2:lambda + map 实现

如果要用到lambda表达式,可以配合内置的map函数完成对位求和,逻辑和上面完全一致:

my_list = [1,2,3,5,6]
result = list(map(lambda pre, cur: pre + cur, [0] + my_list[:-1], my_list))
print(result)

补充说明

你需求里的计算逻辑不是常规的前缀累加(常规前缀累加输入[1,2,3,5,6]会输出[1,3,6,11,17]),不要直接调用itertools.accumulate的默认逻辑,否则结果不符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 07:57:27