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

如何用Python3原生方法实现列表中相邻元素n-n+1的循环计算?

解决方案:计算列表相邻元素差值(当前元素 - 下一个元素)

错误原因分析

你写的列表推导式[n-(n+1) for n in list]逻辑错误:这里的n是列表中的单个元素,n+1是元素值加1,不是下一个位置的元素,所以每个结果都是元素-元素-1=-1.0,完全不符合需求。

原生Python3解决方案

方法1:索引遍历的列表推导式

直接通过索引访问当前元素和下一个元素,遍历到倒数第二个元素即可避免索引越界:

original_list = [26.5, 17.3, 5.9, 10.34, 3.87]
list_2 = [original_list[i] - original_list[i+1] for i in range(len(original_list)-1)]
# 输出:[9.2, 11.4, -4.44, 6.47]

方法2:使用zip函数配对元素

利用zip将原列表与它的切片(从第二个元素开始)配对,再计算每对的差值,写法更简洁:

original_list = [26.5, 17.3, 5.9, 10.34, 3.87]
list_2 = [a - b for a, b in zip(original_list, original_list[1:])]
# 输出:[9.2, 11.4, -4.44, 6.47]

方法3:普通for循环写法

如果习惯用显式循环,初始化空列表后逐个计算差值追加,注意循环范围:

original_list = [26.5, 17.3, 5.9, 10.34, 3.87]
list_2 = []
for i in range(len(original_list)-1):
    diff = original_list[i] - original_list[i+1]
    list_2.append(diff)
# 输出:[9.2, 11.4, -4.44, 6.47]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:15:32