Python|选择性指数总和
在Python中,从其索引访问元素更容易,只需在列表中使用 []运算符就可以了。但是在某些情况下,当我们有多个索引时,我们会遇到任务,我们需要获取与这些索引对应的所有元素,然后执行求和。让我们讨论实现此任务的某些方法。
方法 #1:使用列表推导 + sum()
这个任务很容易用循环来执行,因此它的简写是从这个任务开始的第一种方法。遍历索引列表以从列表中获取相应的元素到新列表中是执行此任务的粗暴方法。求和任务是使用 sum() 执行的。
# Python3 code to demonstrate
# Selective indices Summation
# using list comprehension + sum()
# 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 + sum() to
# Selective indices Summation
res_list = sum([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 : 22
方法 #2:使用map() + __getitem__ + sum()
实现这一特定任务的另一种方法是将一个列表与另一个列表映射并获取索引项并从搜索列表中获取相应的匹配元素。这是执行此任务的非常快速的方法。求和任务是使用 sum() 执行的。
# Python3 code to demonstrate
# Selective indices Summation
# using map() + __getitem__ + sum()
# 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__ + sum() to
# Selective indices Summation
res_list = sum(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 : 22