📜  Python|生成连续元素差异列表

📅  最后修改于: 2022-05-13 01:55:13.596000             🧑  作者: Mango

Python|生成连续元素差异列表

在使用Python时,我们通常会遇到许多需要在日常和开发中解决的问题。特别是在开发中, Python的小任务希望在一行中执行。我们讨论了一些计算列表的方法,该列表由列表中连续不同的元素组成。

方法#1:使用列表推导
可以使用朴素的方法来执行,但是由于本文讨论了针对此特定问题的单线解决方案,我们从列表推导式开始作为执行此任务的方法。

# Python3 code to demonstrate 
# to generate successive difference list 
# using list comprehension
  
# initializing list 
test_list = [1, 4, 5, 3, 6]
  
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# using list comprehension
# generate successive difference list
res = [test_list[i + 1] - test_list[i] for i in range(len(test_list)-1)]
  
# printing result
print ("The computed successive difference list is : " + str(res))

输出 :

The original list is : [1, 4, 5, 3, 6]
The computed successive difference list is : [3, 1, -2, 3]

方法 #2:使用zip()
zip()也可用于执行类似的任务,并使用负索引的力量来zip()索引元素及其下一个元素,从而计算差异。

# Python3 code to demonstrate 
# to generate successive difference list 
# using zip()
  
# initializing list 
test_list = [1, 4, 5, 3, 6]
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# using zip()
# generate successive difference list
res = [j - i for i, j in zip(test_list[: -1], test_list[1 :])]
  
# printing result
print ("The computed successive difference list is : " + str(res))

输出 :

The original list is : [1, 4, 5, 3, 6]
The computed successive difference list is : [3, 1, -2, 3]

方法 #3:使用map() + operator.sub
map()可以与减法运算符结合来执行此特定任务。这会将元素与其下一个元素映射并执行减法运算。可以传递其他运算符来执行所需的操作。

# Python3 code to demonstrate 
# to generate successive difference list 
# using map() + operator.sub
import operator
  
# initializing list 
test_list = [1, 4, 5, 3, 6]
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# using map() + operator.sub
# generate successive difference list
res = list(map(operator.sub, test_list[1:], test_list[:-1]))
  
# printing result
print ("The computed successive difference list is : " + str(res))

输出 :

The original list is : [1, 4, 5, 3, 6]
The computed successive difference list is : [3, 1, -2, 3]