在 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()
函数。
对两个列表的值求和:
- 使用
operator.add()
方法和列表调用map()
函数。 - 使用
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()
类将结果转换为列表。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。