Задать вопрос
@dante21

Как повернуть массив по часовой стрелке на 90 градусов?

Дан массив N × M. Требуется повернуть его по часовой стрелке на 90 градусов.
Входные данные

На первой строке даны натуральные числа N и M (1 ≤ N, M ≤ 50). На следующих N строках записано по M неотрицательных чисел, не превышающих 109 – сам массив..

Выходные данные
Выведите повернутый массив в формате входных данных.
Написать программу без использования функций
Пример
Входные данные:
3 4
1 2 3 4
5 6 7 8
9 10 11 12
Выходные данные:
4 3
9 5 1
10 6 2
11 7 3
12 8 4
Подскажите, пожалуйста, не могу понять, как осуществить сам поворот
n,m = map(int,input().split())
a = []
for i in range (n):
    a.append(input())
k = [[0] * m] * n
for i in range (n):
    k[i] = a[i].split()
  • Вопрос задан
  • 4772 просмотра
Подписаться 1 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 2
@dmshar
import numpy as np
an=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
bn=np.empty(shape=(an.shape[1],an.shape[0]))
for i in range(an.shape[0]):   
    for j in range(an.shape[1]):      
        bn[j,an.shape[0]-1-i]=an[i,j]

Было:
array([[ 1,  2,  3,  4],
       [ 5,  6,  7,  8],
       [ 9, 10, 11, 12]])

Результат:
array([[ 9.,  5.,  1.],
       [10.,  6.,  2.],
       [11.,  7.,  3.],
       [12.,  8.,  4.]])


Или на "голых" списках:
n=3
m=4
a=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
k=[[0,0,0],[0,0,0],[0,0,0],[0,0,0]]
for i in range(n):   
    for j in range(m):    
        k[j][n-1-i]=a[i][j]


Результат:
[[9, 5, 1], 
[10, 6, 2], 
[11, 7, 3], 
[12, 8, 4]]
Ответ написан
@krundetz
для поворота одномерного массива
my_array = [0,10,20,40]
my_array.reverse()

результат
[40, 20, 10, 0]

то что у вас в качестве примере, по моему явно не поворот на 90 градусов, был массив 4х4 а стал 3х5
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы