Python. Нужно повернуть матрицу на 90 градусов
n = 3
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
n = len(a)
for i in range(len(a)):
for j in range(len(a[i])):
a[i][j] = a[n-j-1][i]
for z in a:
Дополнен 7 лет назад
n = 3
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
n = len(a)
for i in range(len(a)):
. for j in range(len(a[i])):
. a[i][j] = a[n-j-1][i]
for z in a:
. print(z)
Голосование за лучший ответ
1 2 3
4 5 6
7 8 9
7 4 1
8 5 2
9 6 3
Столбец становится строкой j=i ты верно написал
Столбец = 2-i с учетом что первый есть нулевой
то бишь обменять
a[i][j] с a[j][2-i] (ну и обменять не значит равно)
Володя БарбаричУченик (178) 7 лет назад
то есть ты имеешь в виду в 6 рядке кода должно быть a[i][j] = a[j][2-i].
ноо оно неправильно работает
Зеркальное отображение матрицы
Дана квадратная матрица чисел. Напишите программу, которая зеркально отображает её элементы относительно горизонтальной оси симметрии.
Формат входных данных
На вход программе подаётся натуральное число n — количество строк и столбцов в матрице, затем элементы матрицы построчно через пробел.
Формат выходных данных
Программа должна вывести матрицу в которой зеркально отображены элементы относительно горизонтальной оси симметрии.
n = int(input()) matrix = [] for _ in range(n): matrix.insert(0, list(map(int, input().split()))) for line in matrix: print(*line)

Похожие записи:
- Эффективный ввод-вывод в разных языках программирования
- Обмен диагоналей матрицы
- Матрицы. Максимум в таблице
- Сортировка столбцов матрицы по возрастанию элементов первой строки
Добавить комментарий Отменить ответ
Многие современные телевизоры среднего и нижнего ценового диапазона не способны обеспечить качественное звучание. Во
Книга «CRM-системы» представляет собой обзор и анализ различных CRM-систем, используемых в современном бизнесе. Автор рассматривает популярные
Python-сообщество
![]()
- Начало
- » Python для новичков
- » Отражение матрицы по горизонтальной оси
#1 Дек. 9, 2018 18:12:16
Zyxer25 Зарегистрирован: 2018-11-25 Сообщения: 2 Репутация: 0 Профиль Отправить e-mail
Отражение матрицы по горизонтальной оси
Помогите разработать функцию, которая зеркально отражает входную матрицу по горизонтали
#2 Дек. 10, 2018 06:17:25
Rafik Зарегистрирован: 2018-09-04 Сообщения: 231 Репутация: 27 Профиль Отправить e-mail
Отражение матрицы по горизонтальной оси
Даю подсказку: всю матрицу представить как список, каждая строка матрицы — список, вложенный в первый. У списка есть такая полезная вещь, как reverse. После применения reverse получаем список с элементами в обратном порядке. Эта функция ничего не возвращает, а только перестраивает список.
matr = [[1,2,5,4,0],[9,1,3,1,2]] for stroka in matr: stroka.reverse() print(stroka)
Как повернуть массив на 90 градусов python
Проще всего это будет сделать с помощью Numpy:
import numpy as np l = [[0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]] a = np.array(l) # a = array([[0, 0, 0, 0], # [0, 0, 0, 1], # [0, 0, 0, 1], # [0, 0, 0, 1]], dtype=int64) # поворот: np.rot90(a) # a = array([[0, 1, 1, 1], # [0, 0, 0, 0], # [0, 0, 0, 0], # [0, 0, 0, 0]], dtype=int64) # можно несколько раз повернуть: np.rot90(a, k=2) # a = array([[1, 0, 0, 0], # [1, 0, 0, 0], # [1, 0, 0, 0], # [0, 0, 0, 0]], dtype=int64) # "вернуть" к обычному списку списков: np.rot90(a).tolist() # => [[0, 1, 1, 1], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
Соответственно для поворота по часовой стрелке используйте np.rot90(a, k=3) (270 градусов).
Если не использовать Numpy, то для поворота по часовой стрелке есть такой способ:
def transposed(matrix): return [[*col] for col in zip(*matrix)] def rot90: return list(map(reversed, transposed(matrix))) # или в одно действие def rot90(matrix): return [list(reversed(col)) for col in zip(*matrix)]
. а для поворота против часовой:
def rot90(matrix): return [list(row) for row in list(zip(*matrix))[::-1]]