我正在寻找一种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)