python二维列表求解所有元素之和
2020-01-14
相信很多初学小伙伴都会遇到二维列表求解所有元素之和问题,下面给出两种两种常见的求和方法。
方法1:
思想:遍历整个二维列表元素,然后将所有元素加起来
1 def Sum_matrix(matrix): 2 sum=0 3 for i in range(len(matrix)): 4 for j in range(len(matrix[i])): 5 sum+=matrix[i][j] 6 return sum 7 8 9 #测试 10 matrix=[[1, 2, 3], [4, 5, 6, 4], [7, 8, 9]] 11 Sum_matrix(matrix) #49 12 13 a=[[22,4,5],[3],[5,5,82,4,7]] 14 Sum_matrix(a) #137
说明:上述方法可以求解常见二维列表所有元素之和,不受列表各行长度影响
方法2
思想:采用列表句柄(在一篇博客看到这样称呼)来求解,思想还是将所有元素加起来,但实现方法与方法1稍微有点不同
1 def Sum_matrix(matrix): 2 sum=0 3 for i in matrix: 4 for j in i: 5 sum+=j 6 return sum 7 8 #测试 9 matrix=[[1, 2, 3], [4, 5, 6, 4], [7, 8, 9]] 10 Sum_matrix(matrix) #49 11 12 a=[[22,4,5],[3],[5,5,82,4,7]] 13 Sum_matrix(a) #137
说明:可以看到,方法2实现方式更简单,更灵活。与方法1相比,在方法2中,遍历时的 i 代表二维列表的一整行,j表示一行中各个元素,而方法1中遍历时的 i 和 j 用来表示元素位置。同样方法2不受列表各行长度影响。
关于i和j 用来表示各个元素值,可看下面例子
matrix=[[1, 2, 3], [4, 5, 6, 4], [7, 8, 9]] >>> for i in matrix: print(i) for j in i: print(j) #输出 [1, 2, 3] #i=0,matrix第一行matrix[0] 1 2 3 [4, 5, 6, 4]#i=1,matrix第二matrix[1] 4 5 6 4 [7, 8, 9] #i=2,matrix第三行matrix[2] 7 8 9
应该很清晰了吧!
总结:以上两种方法相信在实际操作中均会采用,方法1采用元素下表形式来访问元素,方法2采用二维列表句柄形式访问,简单灵活。两种方法相对都较容易,希望小伙伴们都能掌握,也欢迎大家一块留言讨论学习