Python如何通过for循环遍历二维数组实现元素累加求和
Python二维列表遍历求和实现
原代码存在的问题
原代码无法得到正确结果,核心错误如下:
- 循环逻辑只触达了外层列表层级,没有深入遍历每个子列表内部的单个数值,二维列表需要两层遍历才能拿到所有元素
- 循环体内每次都将
sum直接赋值为第一个子列表scores[0],既没有做累加操作,取值范围也完全错误,最终拿到的永远是第一个子列表而不是数值总和 - 额外注意:不要用
sum作为自定义变量名,它是Python内置的求和函数,直接覆盖会导致后续内置功能失效。
正确实现代码
最容易理解的双层循环写法,匹配基础for循环语法的学习需求:
if __name__ == '__main__': scores = [[8, 1], [5, 3], [3, 5], [8, 1], [7, 1], [1, 0], [9, 0], [5, 0], [6, 0], [8, 1, 0]] total = 0 # 第一层遍历:拿到每一行子列表 for row in scores: # 第二层遍历:拿到当前行里的每一个分数值 for num in row: total += num print("所有元素总和为:", total)
运行上述代码会输出总和72,和预期结果完全一致。
如果已经熟悉循环逻辑,也可以用更简洁的生成器表达式配合内置求和函数实现:
if __name__ == '__main__': scores = [[8, 1], [5, 3], [3, 5], [8, 1], [7, 1], [1, 0], [9, 0], [5, 0], [6, 0], [8, 1, 0]] total = sum(num for row in scores for num in row) print("所有元素总和为:", total)
内容的提问来源于stack exchange,提问作者galapagos
相关产品推荐
相关产品推荐

