поменять местами цифры в матрице

Рейтинг: 0Ответов: 1Опубликовано: 03.03.2023

Есть такая задача:

Код ниже:

matrix = [[1, 2, 3], 
          [4, 5, 6], 
          [7, 8, 9]]

matrix.reverse()
for i in range(len(matrix)):
    for j in range(i):
        matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]

print(matrix) 

Объясните пожалуйста почему когда я ставлю в конце перед принтом matrix.reverse(), то получаю другой ответ совсем(такой: [[3, 6, 9], [2, 5, 8], [1, 4, 7]]). В чем разница? И как работает обмен элементов, как программа понимает что именно 741 852 963 нужно ставить? Только учусь, поэтому не судите строго. Спасибо

Ответы

▲ 1Принят

Матрица состоит из строк и столбцов. Когда Вы используете reverse, строки меняются местами со столбцами - это называется транспонированием. Таким образом строки 1,4,7; 2,5,8; 3,6,9; превращаются в столбцы, аналогичная ситуация со столбцами, которые встают на место строк