我想在python中计算矩阵的行和列和;但是,由于信息安全要求,我不能使用任何外部库。因此,为了创建一个矩阵,我使用了一个列表列表,如下所示:
matrix = [[0 for x in range(5)] for y in range(5)]
for pos in range(5):
matrix[pos][pos]=1
matrix[2][2]= 0
现在我要做的是对矩阵进行行和列求和。我知道如何做行加和,这很简单:
sum(matrix[0])
但是如果我想做一个列求和呢?有没有一种比蛮横更优雅、更具pythonic风格的方式来完成这一任务??用for循环来强迫它,就像la。
sumval = 0
for pos in range(len(matrix[0])):
sumval = matrix[pos][0] + sumval
这是可行的,但它根本不是蟒蛇。
有人能帮我吗?
发布于 2018-12-14 19:20:27
colsum = sum(row[0] for row in matrix)
不过,对于其他关注这个问题的人来说,这真的是一个最好留给numpy
的任务。但是,不允许使用OP作为外部库。
发布于 2018-12-14 19:25:52
我建议:
s = 0
for row in matrix:
s += row[0]
这与您正在做的相同,但可读性更好一些。
使用像这样的东西:
s = sum([row[0] for row in matrix])
也是可读的,但速度较慢,因为您需要执行一次遍历来收集行元素,第二次遍历来求和。
发布于 2018-12-14 19:19:02
您可以使用:
sum([matrix[i][0] for i in range(len(matrix[0]))])
https://stackoverflow.com/questions/53785660
复制相似问题