Bom dia, boa tarde, boa noite! Gente, estou tentando completar um desafio em que devo rotacionar uma matriz conforme segue abaixo:
'''
matriz original:
1,2,3 matrix[0][0] matrix[0][1] matrix[0][2]
4,5,6 matrix[1][0] matrix[1][1] matrix[1][2]
7,8,9 matrix[2][0] matrix[2][1] matrix[2][2]
rotaciona sentido horário,
nova matriz:
7,4,1 matrix[2][0] matrix[1][0] matrix[0][0]
8,5,2 matrix[2][1] matrix[1][1] matrix[0][1]
9,6,3 matrix[2][2] matrix[1][2] matrix[0][2]
'''
escrevi a função abaixo mas o resultado sai errado
def rotate(matrix,direction):
matrix2 = matrix
for linha in matrix:
l = matrix.index(linha)
for coluna in linha:
c = linha.index(coluna)
if direction == "clockwise":
matrix2[l][c] = matrix[((len(matrix)-1) - c)][l]
#aqui mandei imprimir a linha e coluna para visualisar onde estava o erro:
print(f'linha: {(len(matrix)-1-c)}, coluna: {l}')
return matrix2
print(rotate([[1,2,3],[4,5,6],[7,8,9]],"clockwise"))
com a matriz dada [[1,2,3],[4,5,6],[7,8,9]] o resultado que o programa cospe é [[7, 4, 7], [8, 5, 4], [9, 4, 9]] quando deveria ser [[7,4,1],[8,5,2],[9,6,3]]
alguém tem alguma idéia de porque os índices saem trocados?