关于python实现二维数组所有元素求和

时间:2023-02-11 09:21:24

今天遇到一个需求,求二维数组的和,尽量在一行代码中完成:

   关于二维数组求和的几种方法:

   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,比较简洁,至于效率方面没有尽兴比较。


感谢群里小伙伴们的建议和讨论,仅作为学习笔记。