在 Python 中对两个列表的值求和
Sum the values of two lists in Python
对两个列表的值求和:
- 使用该
zip
函数获取具有相应项的可迭代元组。 - 使用列表理解来迭代可迭代对象。
- 将每个元组传递给
sum()
函数以获得总和。
主程序
list_1 = [1, 2, 3] list_2 = [4, 5, 6] # 👇️ [(1, 4), (2, 5), (3, 6)] print(list(zip(list_1, list_2))) list_3 = [sum(tup) for tup in zip(list_1, list_2)] print(list_3) # 👉️ [5, 7, 9]
zip函数并行迭代多个可迭代对象,并生成元组,其中每个可迭代对象都有一个项目。
主程序
list_1 = [1, 2, 3] list_2 = [4, 5, 6] # 👇️ [(1, 4), (2, 5), (3, 6)] print(list(zip(list_1, list_2)))
您可以想象该zip()
函数遍历列表,取 1 个项目
列表中的第一个元组由每个列表中索引为
0
的元素组成,第二个元组由每个列表中索引为 的元素组成1
,依此类推。我们使用列表理解来迭代zip
对象。
主程序
list_1 = [1, 2, 3] list_2 = [4, 5, 6] list_3 = [sum(tup) for tup in zip(list_1, list_2)] print(list_3) # 👉️ [5, 7, 9]
列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。
sum函数接受一个可迭代对象,从左到右对其项目求和并返回总数。
在每次迭代中,我们将当前元组传递给sum()
函数并获得总数。
您还可以使用此方法对两个以上列表的值求和。
主程序
list_1 = [1, 2, 3] list_2 = [4, 5, 6] list_3 = [7, 8, 9] list_4 = [sum(tup) for tup in zip(list_1, list_2, list_3)] print(list_4) # 👉️ [12, 15, 18]
或者,您可以使用该map()
功能。
对两个列表的值求和:
- 使用方法和列表调用
map()
函数。operator.add()
- 使用
list()
该类将map
对象转换为列表。
主程序
from operator import add list_1 = [1, 2, 3] list_2 = [4, 5, 6] list_3 = list(map(add, list_1, list_2)) print(list_3) # 👉️ [5, 7, 9]
确保从模块导入add()
方法。operator
map()函数将一个函数和一个可迭代对象作为参数,并使用可迭代对象的每个项目调用该函数。
operator.add
方法a + b
同上。
您可以想象用两个可迭代对象的每个项目
map
调用该方法(例如 index 处的项目, then等)。add
0
1
该map
函数返回一个map
对象,因此我们不得不使用list()
该类将结果转换为列表。