Python对二维数组求和的方法:首先定义好一个二维数组;然后使用map函数对数组里每一个元素进行sum操作即可对二维数组求和。
关于二维数组求和的几种方法:
a = [[1,2],[3,4],[5,6]]
方法一 sum(map(sum,a))
map(func,a) 函数是对a中的每一个元素进行sum操作
解释一下map函数, map(fund, a) equals [func(i) for i in a] and return a list
方法二 sum(sum(i) for i in a)
方法三 sum(sum(a[i]) for i in range(len(a)))
方法四 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,比较简洁。
推荐课程:Python核心基础(尚硅谷)
#!/usr/bin/python# -*- coding:utf-8 -*-
# @Time : 2018/6/10 15:00
# @File : Sum_List.py
"""
输入一个2维列表 用该函数计算每一列的和并返回一个列表
"""
def sum_each_colum(olist):
"""
计算多维数字数组每列的和,并作为一个列表的元素,最后返回这个列表
:param olist:
:return:slist
"""
slist = []
if isinstance(olist, list):
slen = len(olist[0])
for i in range(slen):
s = 0.0
for temp in olist:
if isinstance(temp[i], (int, float)):
s += temp[i]
else:
return u'不是数字,无法求和'
else:
slist.append(s)
else:
return slist
else:
return u'输入与要求不符'
if __name__ == '__main__':
alist = eval(raw_input(u'请输入一个多维数字的列表[[1,2],[3,4]]:'))
print sum_each_colum(alist)