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

如何用Python实现列表当前元素与前一个元素逐项相加?

解决方法

你要的不是常规的累积求和,而是让每个元素(除第一个)和它前一个原始元素相加对吧?给你几种实用的Python实现方式:

方法一:原生循环(直观易懂)

这种写法逻辑最清晰,新手也能快速理解:

l = [4, 2, 1, 3]
new_l = [l[0]]  # 第一个元素直接保留原值
for i in range(1, len(l)):
    # 当前元素 + 前一个原始元素
    new_l.append(l[i] + l[i-1])
print(new_l)  # 输出: [4, 6, 3, 4]

方法二:列表推导式(简洁优雅)

用列表推导式结合zip函数,一行搞定核心逻辑:

l = [4, 2, 1, 3]
# 先保留第一个元素,再对相邻元素配对相加
new_l = [l[0]] + [curr + prev for curr, prev in zip(l[1:], l[:-1])]
print(new_l)  # 输出: [4, 6, 3, 4]

这里zip(l[1:], l[:-1])会把[2,1,3]和[4,2,1]配对成(2,4)、(1,2)、(3,1),刚好对应每个当前元素和前一个元素的组合。

方法三:Numpy实现(适合数组场景)

如果你习惯用Numpy处理数据,可以用数组移位的方式实现:

import numpy as np

l = [4, 2, 1, 3]
arr = np.array(l)
# 拼接第一个元素,再把移位后的数组相加
new_arr = np.concatenate([[arr[0]], arr[1:] + arr[:-1]])
new_l = new_arr.tolist()
print(new_l)  # 输出: [4, 6, 3, 4]

arr[1:]是从第二个元素开始的子数组,arr[:-1]是到倒数第二个元素的子数组,两者逐元素相加后,再和第一个元素拼接就得到结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:59:28