Python 中的列表总和
Sum list of lists in Python
汇总列表列表:
- 使用该
zip
函数获取具有相应项的元组的迭代器。 - 使用列表理解来迭代可迭代对象。
- 在每次迭代中,将元组传递给
sum()
函数。
主程序
list_of_lists = [[1, 2], [3, 4], [5, 6]] # 👇️ [(1, 3, 5), (2, 4, 6)] print(list(zip(*list_of_lists))) result = [sum(l) for l in zip(*list_of_lists)] print(result) # 👉️ [9, 12]
zip函数并行迭代多个可迭代对象,并生成元组,其中每个可迭代对象都有一个项目。
主程序
list_of_lists = [[1, 2], [3, 4], [5, 6]] # 👇️ [(1, 3, 5), (2, 4, 6)] print(list(zip(*list_of_lists)))
我们使用可迭代解包运算符在函数*
调用中解包嵌套列表。zip()
主程序
list_of_lists = [[1, 2], [3, 4], [5, 6]] # 👇️ [1, 2] [3, 4] [5, 6] print(*list_of_lists)
*可迭代解包运算符
使我们能够在函数调用、推导式和生成器表达式中解包可迭代对象。
您可以想象该zip()
函数遍历嵌套列表,从每个列表中取出一项。
主程序
list_of_lists = [[1, 2], [3, 4], [5, 6]] # 👇️ [(1, 3, 5), (2, 4, 6)] print(list(zip(*list_of_lists)))
列表中的第一个元组由每个嵌套列表中索引为
0
的元素组成,第二个元组由每个嵌套列表中索引为 的元素组成1
。最后一步是使用列表理解来迭代zip
对象并对每个元组求和。
主程序
list_of_lists = [[1, 2], [3, 4], [5, 6]] result = [sum(l) for l in zip(*list_of_lists)] print(result) # 👉️ [9, 12]
列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。
sum函数接受一个可迭代对象,从左到右对其项目求和并返回总数。
在每次迭代中,我们将当前元组传递给sum()
函数并获得总数。
您可以将此方法用于存储任意长度的嵌套列表的列表。
主程序
list_of_lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # 👇️ [(1, 4, 7), (2, 5, 8), (3, 6, 9)] print(list(zip(*list_of_lists))) result = [sum(l) for l in zip(*list_of_lists)] print(result) # 👉️ [12, 15, 18]