尝试编写代码以将N * N矩阵旋转90度。这是我的代码:
def rotate_matrix(matrix):
n = len(matrix)
res = [[None] * n] * n
for n_row in range(n):
for n_col in range(n):
res[n_row][n_col] = matrix[n - n_col -1][n_row]
return res
我在这里要做的是循环遍历新矩阵中的每个索引,并为原始矩阵的相应索引赋值。但是,代码在输出中产生了复制行:
test = [[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25]]
print(rotate_matrix(test))
# [[25, 20, 15, 10, 5],
# [25, 20, 15, 10, 5],
# [25, 20, 15, 10, 5],
# [25, 20, 15, 10, 5],
# [25, 20, 15, 10, 5]]
我很难在代码中发现错误。试图打印出函数中的变量,但对我来说一切似乎都很好。如果有人能指出我的错误,那就太好了。