Python 生成连续元素差值列表


在这篇文章中,我们将看到如何找出给定列表中每对元素的两个连续元素之间的差值。该列表仅包含数字元素。

带索引

使用元素的索引和 for 循环,我们可以找出连续元素对之间的差值。

示例

 实时演示

listA = [12,14,78,24,24]
# Given list
print("Given list : \n",listA)
# Using Index positions
res = [listA[i + 1] - listA[i] for i in range(len(listA) - 1)]
# printing result
print ("List with successive difference in elements : \n" ,res)

输出

运行以上代码,会返回以下结果 -

Given list :
[12, 14, 78, 24, 24]
List with successive difference in elements :
[2, 64, -54, 0]

带切片

切片是另一种技术,其中我们从列表中切出连续元素对,然后应用 zip 函数获得结果。

示例

 实时演示

listA = [12,14,78,24,24]
# Given list
print("Given list : \n",listA)
# Using list slicing
res = [x - y for y, x in zip(listA[: -1], listA[1 :])]
# printing result
print ("List with successive difference in elements : \n" ,res)

输出

运行以上代码,会返回以下结果 -

Given list :
[12, 14, 78, 24, 24]
List with successive difference in elements :
[2, 64, -54, 0]

带 sub

还可通过 map 函数使用 operators 模块中的 sub 方法。我们再次使用切片技术切出两个连续的元素对。

示例

 实时演示

import operator
listA = [12,14,78,24,24]
# Given list
print("Given list : \n",listA)
# Using operator.sub
res = list(map(operator.sub, listA[1:], listA[:-1]))
# printing result
print ("List with successive difference in elements : \n" ,res)

输出

运行以上代码,会返回以下结果 -

Given list :
[12, 14, 78, 24, 24]
List with successive difference in elements :
[2, 64, -54, 0]

更新于: 09-07-2020

395 次浏览

开启你的 职业生涯

完成课程并获得认证

入门
广告