📜  Python|乘以选择性值

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

Python|乘以选择性值

在Python中,从其索引访问元素更容易,只需在列表中使用 []运算符就可以了。但是在某些情况下,当我们有不止一次索引时,我们会遇到任务,我们需要获取与这些索引及其乘积相对应的所有元素。让我们讨论实现此任务的某些方法。

方法#1:使用列表理解+循环
这个任务很容易用循环来执行,因此它的简写是从这个任务开始的第一种方法。遍历索引列表以从列表中获取相应的元素到新列表中是执行此任务的粗暴方法。执行产品的任务是循环执行的。

# Python3 code to demonstrate 
# Multiplying Selective 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 
# Multiplying Selective Values
res_list = [test_list[i] for i in index_list]
res = prod(res_list)
      
# printing result
print ("Resultant product : " + str(res))
输出 :
Original list : [9, 4, 5, 8, 10, 14]
Original index list : [1, 3, 4]
Resultant product : 320

方法 #2:使用map() + __getitem__ + 循环
实现这一特定任务的另一种方法是将一个列表与另一个列表映射并获取索引项并从搜索列表中获取相应的匹配元素。这是执行此任务的非常快速的方法。执行产品的任务是循环执行的。

# Python3 code to demonstrate 
# Multiplying Selective 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 
# Multiplying Selective Values
res_list = prod(list(map(test_list.__getitem__, index_list)))
      
# printing result
print ("Resultant product : " + str(res_list))
输出 :
Original list : [9, 4, 5, 8, 10, 14]
Original index list : [1, 3, 4]
Resultant product : 320