Это происходит из-за matrix_trans[j][i]
, на первой итерации и j
, и i
будут равны нулю, а matrix_trans
- пустой список, поэтому matrix_trans[0]
вызовет ошибку индекса, у вас должна быть копияизмерений вашей первой матрицы в страте, например:
from copy import deepcopy
matrix = [[1, 2, 4], [3, 6, 9], [6, 8, 2]]
matrix_trans = deepcopy(matrix)
for i in range(len(matrix)):
for j in range(len(matrix)):
matrix_trans[j][i] = matrix[i][j]
результат:
In [41]: matrix_trans
Out[41]: [[1, 3, 6], [2, 6, 8], [4, 9, 2]]
In [42]: matrix
Out[42]: [[1, 2, 4], [3, 6, 9], [6, 8, 2]]
для получения дополнительной информации о copy
читайте модуль Документы
Также обратите внимание, что для этого действия вы можете использовать Python zip
.как это:
list(zip(*matrix))