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采用二維列表句柄形式訪問,簡單靈活。兩種方法相對都較容易,希望小伙伴們都能掌握,也歡迎大家一塊留言討論學習


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM