Python – 使用索引列表的元素乘积
在Python中,从其索引访问元素更容易,只需在列表中使用 []运算符就可以了。但是在某些情况下,当我们有多个索引时,我们会遇到任务,我们需要获取与这些索引对应的所有元素,然后执行乘法运算。让我们讨论实现此任务的某些方法。
方法#1:使用列表理解+循环
这个任务很容易用循环来执行,因此它的简写是从这个任务开始的第一种方法。遍历索引列表以从列表中获取相应的元素到新列表中是执行此任务的粗暴方法。产品的任务是使用循环执行的。
# Python3 code to demonstrate
# Product of Index values
# using list comprehension + loop
# getting Product
def prod(val) :
res = 1
for ele in val:
res *= ele
return res
# initializing lists
test_list = [9, 4, 5, 8, 10, 14]
index_list = [1, 3, 4]
# printing original lists
print ("Original list : " + str(test_list))
print ("Original index list : " + str(index_list))
# using list comprehension + loop to
# Product of Index values
res_list = prod([test_list[i] for i in index_list])
# printing result
print ("Resultant list : " + str(res_list))
输出 :
Original list : [9, 4, 5, 8, 10, 14]
Original index list : [1, 3, 4]
Resultant list : 320
方法 #2:使用map() + __getitem__
+ 循环
实现这一特定任务的另一种方法是将一个列表与另一个列表映射并获取索引项并从搜索列表中获取相应的匹配元素。这是执行此任务的非常快速的方法。产品的任务是使用循环执行的。
# Python3 code to demonstrate
# Product of Index values
# using map() + __getitem__ + loop
# getting Product
def prod(val) :
res = 1
for ele in val:
res *= ele
return res
# initializing lists
test_list = [9, 4, 5, 8, 10, 14]
index_list = [1, 3, 4]
# printing original lists
print ("Original list : " + str(test_list))
print ("Original index list : " + str(index_list))
# using map() + __getitem__ + loop to
# Product of Index values
res_list = prod(list(map(test_list.__getitem__, index_list)))
# printing result
print ("Resultant list : " + str(res_list))
输出 :
Original list : [9, 4, 5, 8, 10, 14]
Original index list : [1, 3, 4]
Resultant list : 320