相关疑难解决方法(0)

获取Python中矩阵/列表列表中的所有对角线

我正在寻找一种Pythonic方法来获取(方形)矩阵的所有对角线,表示为列表列表.

假设我有以下矩阵:

matrix = [[-2,  5,  3,  2],
          [ 9, -6,  5,  1],
          [ 3,  2,  7,  3],
          [-1,  8, -4,  8]]
Run Code Online (Sandbox Code Playgroud)

然后大对角线很容易:

l = len(matrix[0])
print [matrix[i][i] for i in range(l)]              # [-2, -6, 7,  8]
print [matrix[l-1-i][i] for i in range(l-1,-1,-1)]  # [ 2,  5, 2, -1]
Run Code Online (Sandbox Code Playgroud)

但是我无法想出一种生成所有对角线的方法.我正在寻找的输出是:

[[-2], [9, 5], [3,-6, 3], [-1, 2, 5, 2], [8, 7, 1], [-4, 3], [8],
 [2], [3,1], [5, 5, 3], [-2, -6, 7, 8], [9, 2, -4], [3, 8], [-1]]
Run Code Online (Sandbox Code Playgroud)

python matrix diagonal

44
推荐指数
5
解决办法
6万
查看次数

标签 统计

diagonal ×1

matrix ×1

python ×1