Python|添加两个列表元素
在许多情况下,需要找到两个不同列表的索引总和。这可以在日常编程中有可能的应用。让我们讨论可以执行此任务的各种方式。
方法#1:朴素的方法
在这种方法中,我们只需运行一个循环并将相似索引处的两个列表元素的总和附加到新列表,直到我们到达较小列表的末尾。这是完成这项任务的基本方法。
# Python code to demonstrate
# addition of two list
# naive method
# initializing lists
test_list1 = [1, 3, 4, 6, 8]
test_list2 = [4, 5, 6, 2, 10]
# printing original lists
print ("Original list 1 : " + str(test_list1))
print ("Original list 2 : " + str(test_list2))
# using naive method to
# add two list
res_list = []
for i in range(0, len(test_list1)):
res_list.append(test_list1[i] + test_list2[i])
# printing resultant list
print ("Resultant list is : " + str(res_list))
输出 :
Original list 1 : [1, 3, 4, 6, 8]
Original list 2 : [4, 5, 6, 2, 10]
Resultant list is : [5, 8, 10, 8, 18]
方法#2:使用列表理解
上述技术的简写,列表推导式通常可以更快地键入,因此必须首选执行此类编程任务。
# Python code to demonstrate
# addition of two list
# list comprehension
# initializing lists
test_list1 = [1, 3, 4, 6, 8]
test_list2 = [4, 5, 6, 2, 10]
# printing original lists
print ("Original list 1 : " + str(test_list1))
print ("Original list 2 : " + str(test_list2))
# using list comprehension to
# add two list
res_list = [test_list1[i] + test_list2[i] for i in range(len(test_list1))]
# printing resultant list
print ("Resultant list is : " + str(res_list))
输出 :
Original list 1 : [1, 3, 4, 6, 8]
Original list 2 : [4, 5, 6, 2, 10]
Resultant list is : [5, 8, 10, 8, 18]
方法 #3:使用map() + add()
map()
也可以使用,因为我们可以将添加操作与两个列表一起输入到map()
中,并且map()
可以执行两种技术的添加。这可以扩展到任何可能的数学运算。
# Python code to demonstrate
# addition of two list
# map() + add()
from operator import add
# initializing lists
test_list1 = [1, 3, 4, 6, 8]
test_list2 = [4, 5, 6, 2, 10]
# printing original lists
print ("Original list 1 : " + str(test_list1))
print ("Original list 2 : " + str(test_list2))
# using map() + add() to
# add two list
res_list = list(map(add, test_list1, test_list2))
# printing resultant list
print ("Resultant list is : " + str(res_list))
输出 :
Original list 1 : [1, 3, 4, 6, 8]
Original list 2 : [4, 5, 6, 2, 10]
Resultant list is : [5, 8, 10, 8, 18]
方法#4:使用zip() + sum()
sum()
可以使用zip()
执行可以“压缩”在一起的列表的索引添加。这是执行此特定任务的非常优雅的方式。
# Python code to demonstrate
# addition of two list
# zip() + sum()
from operator import add
# initializing lists
test_list1 = [1, 3, 4, 6, 8]
test_list2 = [4, 5, 6, 2, 10]
# printing original lists
print ("Original list 1 : " + str(test_list1))
print ("Original list 2 : " + str(test_list2))
# using zip() + sum() to
# add two list
res_list = [sum(i) for i in zip(test_list1, test_list2)]
# printing resultant list
print ("Resultant list is : " + str(res_list))
输出 :
Original list 1 : [1, 3, 4, 6, 8]
Original list 2 : [4, 5, 6, 2, 10]
Resultant list is : [5, 8, 10, 8, 18]