У меня есть матрица 6x6 в виде списка списков в python. Матрица разделена на 4 квадратных блока размером 3x3. Мне нужен способ транспонировать только 1 блок. Я могу сделать это, используя традиционный метод прохождения каждого элемента и копирования его в другой массив и обратно и так далее, но я хочу посмотреть, есть ли лучший способ (транспонирование матрицы в python может быть выполнено в одной строке с помощью zip)
, например, это представление матрицы и ее блоков
block 1 block 2
+-------+-------+
| . . . | . . . |
| . . 2 | 1 . . |
| . . . | . . . |
+-------+-------+
| . . . | . . . |
| . . . | . . . |
| . 1 . | . . . |
+-------+-------+
block 3 block 4
и rotate (3, справа) должен привести к этому
block 1 block 2
+-------+-------+
| . . . | . . . |
| . . 2 | 1 . . |
| . . . | . . . |
+-------+-------+
| . . . | . . . |
| 1 . . | . . . |
| . . . | . . . |
+-------+-------+
block 3 block 4
Я хочу найти метод, который принимает номер блока и вращает только этот блок слева или справа. Есть ли простой способ сделать это?