在 Python 中对两个列表的值求和

对两个列表的值求和:

  1. 使用 zip 函数获取具有相应项目的元组的可迭代。
  2. 使用列表推导来迭代可迭代对象。
  3. 将每个元组传递给 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() 函数。

对两个列表的值求和:

  1. 使用 operator.add() 方法和列表调用 map() 函数。
  2. 使用 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]

确保从 operator 模块导入 add() 方法。

map() 函数将一个函数和一个可迭代对象作为参数,并使用可迭代对象的每个项调用该函数。

operator.add 方法与 a + b 相同。

我们可以想象 map 使用两个可迭代对象的每个项目调用 add 方法(例如,索引为 0 的项目,然后是 1 等)。

map 函数返回一个 map 对象,因此我们必须使用 list() 类将结果转换为列表。