旋转N * N矩阵有问题的输出

时间:2019-04-20 19:33:34

标签: python python-3.x

尝试编写代码以将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]]

我很难在代码中发现错误。试图打印出函数中的变量,但对我来说一切似乎都很好。如果有人能指出我的错误,那就太好了。

0 个答案:

没有答案