Как повернуть матрицу на 90 градусов против часовой стрелки в Python? Лучший способ с примерами!
Для поворота матрицы на 90 градусов против часовой стрелки в Python, вы можете использовать следующий код:
# Исходная матрица
matrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
# Поворот матрицы на 90 градусов
rotated_matrix = [list(reversed(col)) for col in zip(*matrix)]
# Вывод повернутой матрицы
print(rotated_matrix)
В этом коде мы используем функцию zip(*matrix), которая транспонирует матрицу, то есть заменяет строки на столбцы. Затем мы использовали функцию reversed, чтобы перевернуть каждую строки в транспонированной матрице. В результате получается матрица, повернутая на 90 градусов против часовой стрелки.
Детальный ответ
Как повернуть матрицу на 90 градусов против часовой стрелки в Python
Вступление
Поворот матрицы на 90 градусов против часовой стрелки является распространенной задачей, которую можно решить с помощью программирования на языке Python. В этой статье рассмотрим, как выполнить такой поворот и предоставим примеры кода для лучшего понимания.
1. Понимание задачи
Прежде чем мы приступим к кодированию, давайте разберемся, каким образом мы можем повернуть матрицу на 90 градусов против часовой стрелки. Для этого нам понадобится новая матрица, в которой столбцы исходной матрицы станут строками новой матрицы, а строки исходной матрицы будут столбцами новой матрицы. Таким образом, если исходная матрица имеет размерность N x M, то новая матрица будет иметь размерность M x N.
2. Алгоритм решения
Для решения этой задачи, мы можем использовать вложенные циклы для перебора элементов исходной матрицы и заполнения новой матрицы. При переборе элементов исходной матрицы, мы должны обратить внимание на индексы, чтобы правильно разместить элементы в новой матрице.
Ниже приведен алгоритм для поворота матрицы на 90 градусов против часовой стрелки:
def rotate_matrix(matrix):
rows = len(matrix)
cols = len(matrix[0])
new_matrix = [[0] * rows for _ in range(cols)]
for i in range(rows):
for j in range(cols):
new_matrix[j][rows - 1 - i] = matrix[i][j]
return new_matrix
matrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
rotated_matrix = rotate_matrix(matrix)
print(rotated_matrix)
В приведенном коде, мы определяем функцию rotate_matrix, которая принимает исходную матрицу в качестве параметра и возвращает новую повернутую матрицу.
Мы также определяем переменные rows и cols, которые содержат количество строк и столбцов исходной матрицы соответственно. Затем мы создаем новую матрицу с использованием спискового включения, чтобы заполнить ее нулями. Размерность новой матрицы - cols x rows.
Во вложенных циклах, мы перебираем элементы исходной матрицы, используя переменные i и j как индексы. Мы используем формулу new_matrix[j][rows - 1 - i] для правильного размещения элементов в новой матрице с учетом поворота на 90 градусов против часовой стрелки.
В конце мы возвращаем новую матрицу и проверяем ее, вызывая функцию print.
3. Пример выполнения
Давайте рассмотрим пример выполнения кода нашей функции:
matrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
rotated_matrix = rotate_matrix(matrix)
print(rotated_matrix)
Вывод:
[[3, 6, 9],
[2, 5, 8],
[1, 4, 7]]
Как видно из вывода, исходная матрица [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
была повернута на 90 градусов против часовой стрелки и превратилась в новую матрицу [[3, 6, 9], [2, 5, 8], [1, 4, 7]]
.
Заключение
В этой статье мы рассмотрели, как повернуть матрицу на 90 градусов против часовой стрелки в Python. Мы описали алгоритм решения, предоставили пример кода и объяснили вывод. Теперь вы можете использовать этот код для поворота матрицы в ваших собственых программах на Python!