【发布时间】:2013-12-17 13:17:46
【问题描述】:
我需要编写一个函数,该函数将返回在任何给定矩阵中形成对角线的数字之和。
作为一个 Python 新手,我遇到了一个问题。这是我的代码:
def diagonal(matrix):
return sum([matrix[i][i] for i in range(len(matrix))])
我已经尝试了一段时间,但看不出有什么问题,因为它总是给我返回关于“列表索引超出范围”的错误报告。
我不允许导入numpy。
我们将不胜感激任何形式的帮助、提示和建议。
【问题讨论】:
-
你确定这个
matrix是正方形的吗? -
matrix到底是什么?使用matrix[i][i]表示法假定它是一个列表(或者更确切地说,iterables)的列表,其大小应与@Ray 指出的相同,但您的问题尚不清楚。 -
是的,我的矩阵是一个列表列表...而且它们的大小相同。
-
"它们的大小相同。"这将使矩阵成为矩形,但不一定是方形。列表列表中的列表数量是否与每个列表中的元素数量相同?
-
@user3036896 那么您最好提供代码失败的示例矩阵和准确的跟踪,因为您的代码应该适用于方形输入。
标签: python matrix range diagonal