首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在python中对列表列表执行行和列求和

在python中对列表列表执行行和列求和
EN

Stack Overflow用户
提问于 2018-12-14 19:15:45
回答 4查看 2.2K关注 0票数 0

我想在python中计算矩阵的行和列和;但是,由于信息安全要求,我不能使用任何外部库。因此,为了创建一个矩阵,我使用了一个列表列表,如下所示:

代码语言:javascript
运行
AI代码解释
复制
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

现在我要做的是对矩阵进行行和列求和。我知道如何做行加和,这很简单:

代码语言:javascript
运行
AI代码解释
复制
sum(matrix[0])

但是如果我想做一个列求和呢?有没有一种比蛮横更优雅、更具pythonic风格的方式来完成这一任务??用for循环来强迫它,就像la。

代码语言:javascript
运行
AI代码解释
复制
sumval = 0
for pos in range(len(matrix[0])):
    sumval = matrix[pos][0] + sumval

这是可行的,但它根本不是蟒蛇。

有人能帮我吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-12-14 19:20:27

代码语言:javascript
运行
AI代码解释
复制
colsum = sum(row[0] for row in matrix)

不过,对于其他关注这个问题的人来说,这真的是一个最好留给numpy的任务。但是,不允许使用OP作为外部库。

票数 5
EN

Stack Overflow用户

发布于 2018-12-14 19:25:52

我建议:

代码语言:javascript
运行
AI代码解释
复制
s = 0
for row in matrix:
    s += row[0]

这与您正在做的相同,但可读性更好一些。

使用像这样的东西:

代码语言:javascript
运行
AI代码解释
复制
s = sum([row[0] for row in matrix])

也是可读的,但速度较慢,因为您需要执行一次遍历来收集行元素,第二次遍历来求和。

票数 2
EN

Stack Overflow用户

发布于 2018-12-14 19:19:02

您可以使用:

代码语言:javascript
运行
AI代码解释
复制
sum([matrix[i][0] for i in range(len(matrix[0]))])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53785660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档