Python - 将列表中的连续元素相乘
在使用Python时,我们通常会遇到许多需要在日常和开发中解决的问题。特别是在开发中, Python的小任务希望在一行中执行。我们讨论了一些计算列表的方法,该列表由列表中连续乘积的元素组成。
方法#1:使用列表推导
可以使用朴素的方法来执行,但是由于本文讨论了针对此特定问题的单线解决方案,我们从列表推导式开始作为执行此任务的方法。
# Python3 code to demonstrate
# Consecutive Product 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
# Consecutive Product list
res = [test_list[i] * test_list[i + 1] for i in range(len(test_list)-1)]
# printing result
print ("The computed successive product list is : " + str(res))
输出 :
The original list is : [1, 4, 5, 3, 6]
The computed successive product list is : [4, 20, 15, 18]
方法 #2:使用zip()
zip() 也可以用于执行类似的任务,并使用负索引的力量来 zip() 索引元素及其下一个元素,从而计算产品。
# Python3 code to demonstrate
# Consecutive Product 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()
# Consecutive Product list
res = [i * j for i, j in zip(test_list[: -1], test_list[1 :])]
# printing result
print ("The computed successive product list is : " + str(res))
输出 :
The original list is : [1, 4, 5, 3, 6]
The computed successive product list is : [4, 20, 15, 18]