矩阵旋转,列表索引超出范围

时间:2019-11-01 21:06:21

标签: python

尝试沿逆时针方向旋转大小为3的矩阵。

def anti(matrix,n):

    while n > 0: # n is the no of rotations 
        l = len(matrix)
        new_matrix = [[row[:] for row in matrix]]
        for i in range(l-1,-1,-1):
            for j in range(l):
                new_matrix[l-i-1][j] = matrix[j][i]
        matrix = [row[:] for row in new_matrix]
        n -= 1
    return matrix

我得到的错误是:

  

列表索引超出第7行的范围

1 个答案:

答案 0 :(得分:0)

  • 您的[]中还有多余的new_matrix。导致new_matrixmatrix之间出现尺寸不匹配。
def anti(matrix,n):

    while n > 0: # n is the no of rotations 
        l = len(matrix)
        new_matrix = [row[:] for row in matrix]
        for i in range(l-1,-1,-1):
            for j in range(l):
                new_matrix[l-i-1][j] = matrix[j][i]
        matrix = [row[:] for row in new_matrix]
        n -= 1
    return matrix
a = [[1,2,3],[4,5,6],[7,8,9]]

print(anti(a, 3))