使用zip()函数可同步遍历多个列表并按位置求和,如for x, y, z in zip(a, b, c)实现对应元素相加;若求所有元素总和,可用嵌套循环累加每个列表的值。

在Python中,使用for循环对多个列表求和,关键在于如何同时遍历多个列表。最常用且高效的方法是结合zip()函数,将多个列表的元素“打包”在一起,然后逐个处理。
使用zip()函数同步遍历多个列表
当多个列表长度相同,你想对对应位置的元素求和时,zip()是最自然的选择。它会把多个列表中相同索引的元素组合成元组。
- 假设你有三个列表:
a = [1, 2, 3],b = [4, 5, 6],c = [7, 8, 9] - 用
zip(a, b, c)可以得到:(1,4,7), (2,5,8), (3,6,9) - 在
for循环中解包这些元组,直接相加即可
示例代码:
a = [1, 2, 3] b = [4, 5, 6] c = [7, 8, 9]total = [] for x, y, z in zip(a, b, c): total.append(x + y + z)
print(total) # 输出: [12, 15, 18]
对所有列表的总和求累计值
如果你不是想按位置求和,而是想把所有列表中的所有数字加起来得到一个总和,可以直接遍历每个列表并累加。
立即学习“Python免费学习笔记(深入)”;
- 创建一个变量如
sum_all = 0 - 用嵌套循环或连续循环遍历每个列表的每个元素
- 每遇到一个数就加到总和中
示例代码:
a = [1, 2, 3] b = [4, 5, 6] c = [7, 8, 9]sum_all = 0 for lst in [a, b, c]: for num in lst: sum_all += num
print(sum_all) # 输出: 45
更简洁的写法:列表推导式与sum()
虽然题目要求用for循环,但了解更高效的写法也有帮助。比如用sum()配合生成器表达式可以一行完成总和计算。
例如,求所有元素的总和:
sum_all = sum(num for lst in [a, b, c] for num in lst)
或者按位置求和:
total = [x + y + z for x, y, z in zip(a, b, c)]
基本上就这些。用zip()处理对应位置求和,用嵌套循环或合并遍历求整体总和,逻辑清晰,代码也容易维护。关键是根据需求选择合适的方式。











