1. 程式人生 > >關於python實現二維陣列所有元素求和

關於python實現二維陣列所有元素求和

今天遇到一個需求,求二維陣列的和,儘量在一行程式碼中完成:

關於二維陣列求和的幾種方法:

   a = [[1,2],[3,4],[5,6]]

   1.sum(map(sum,a)) #first, map(func,a) 函式是對a中的每一個元素進行sum操作

  解釋一下map函式, map(fund, a)   equals  [func(i) for i in a]  and return a list

   2.sum(sum(i) for i in a) second one

   3.sum(sum(a[i]) for i in range(len(a))) #third one

   4.reduce(lambda x,y:x+y , reduce(lambda x,y:x+y, a))

     解釋一下reduce(fun,a),只不說reduce返回的是一個結果值而不是一個list,第一步的時候是([1,2]+[3,4]) + [5,6]

     得到一個[1,2,3,4,5,6], 然後進行的運算是(((((1+2)+3)+4)+5)+6) = 21

一般來說最常用的還是1和3這兩種方法,不知道map or reduce, 一般都會採用3, 而知道的應該會採用1,比較簡潔,至於效率方面沒有盡興比較。

感謝群裡小夥伴們的建議和討論,僅作為學習筆記。