Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/163: Рейтинг темы: голосов - 163, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 17.04.2018
Сообщений: 3

Поворот матрицы на 90 градусов по часовой стрелке

17.04.2018, 16:23. Показов 33844. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Поскольку в стандартной библиотеке Python подобная функция
отсутствует, надо создать собственную специальную
функцию list_rot90(data, times), способную повернуть "двумерный
список" (список списков) на 90 градусов по часовой стрелке.
Функция принимает в себя "двумерный" список (список списков) data и
количество поворотов times, которые необходимо произвести (целое
число, по умолчанию равное 1). Она должна вернуть новый
"двумерный" список (список списков).
Помогите написать предлагаемую функцию. Ничего, кроме этой
функции, в файле решения размещать не надо.

Пример:

Ввод:
from solution import list_rot90
data = [[8, 2], [9, 5]]
times = 1
print(data, times)
print(list_rot90(data, times))

Вывод:
[[8, 2], [9, 5]] 1
[[9, 8], [5, 2]]
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.04.2018, 16:23
Ответы с готовыми решениями:

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

Поворот прямоугольного массива на 90 градусов по часовой стрелке
python 3.6.4 Дан прямоугольный массив размером t*k. Поверните его на 90 градусов по часовой стрелке, записав результат в новый массив...

Переворот матрицы (двумерного массива) на 90 градусов по часовой стрелке
Доброго времени суток! Хотелось бы узнать больше о методе (кажется так и называется) zip. Насколько понял, он берёт элементы i индекса у...

2
 Аватар для regio1961
602 / 294 / 178
Регистрация: 06.06.2016
Сообщений: 552
17.04.2018, 23:29
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def list_rot90( data, times = 1 ):
    rot_data = []
    for t in range( times ):
        m = len( data )
        n = len( data[0] )
        rev_data = data[ : : -1]
        rot_data = [ [rev_data[j][i] for j in range( m ) ] 
                                     for i in range( n ) ];
        data = rot_data                           
    return rot_data
   
 
matrix = [ [ 8, 2 ], 
           [ 9, 5 ] ]
for s in matrix:
    print( *s )  
print( "" )   
rot_matrix = list_rot90( matrix ) 
for s in rot_matrix:
    print( *s )    
print( "" )    
rot_matrix2 = list_rot90( matrix, 2 ) 
for s in rot_matrix2:
    print( *s )
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
18.04.2018, 17:04
Лучший ответ Сообщение было отмечено AlinaVotomina как решение

Решение

Python
1
2
3
4
5
def transposed(matrix):
    return [[*col] for col in zip(*matrix)]
 
def rot90:
    return list(map(reversed, transposed(matrix)))
Или в одно действие
Python
1
2
def rot90(matrix):
    return[list(reversed(col)) for col in zip(*matrix)]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.04.2018, 17:04
Помогаю со студенческими работами здесь

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

Поворот квадратной матрицы на 90 градусов по часовой стрелке, затем на 90 градусов против часовой стрелки
Поворот квадратной матрицы на 90 градусов по часовой стрелке, затем на 90 градусов против часовой стрелки. Вывести промежуточную и...

Поворот квадратной матрицы на 90 градусов по часовой стрелке, затем на 90 градусов против часовой стрелки
Задача: Поворот квадратной матрицы на 90 градусов по часовой стрелке, затем на 90 градусов против часовой стрелки. Вывести промежуточную...

Поворот матрицы на 90 градусов по часовой стрелке
import numpy as np n = int(input('Количество строк = ')) m = int(input('Количество столбцов = ')) a = np.zeros((n, m), dtype=np.int_)...

Поворот матрицы на 45 градусов по часовой стрелке
Добрый день, никак не могу решить задачку: Решить поставленную задачу, используя средства управления вводом/выводом. Дан символьный массив...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru