Mam matrycę 6x6 jako listę list w python. Macierz jest podzielona na 4 bloki kwadratowe o rozmiarze 3x3. Chcę sposobu na przeniesienie tylko jednego bloku. Mogę to zrobić za pomocą tradycyjnej metody przechodzenia przez każdy element i kopiowania go do innej tablicy iz powrotem itd., Ale chcę sprawdzić, czy istnieje lepszy sposób (transponowanie macierzy w pythonie można wykonać w jednym wierszu za pomocą metoda zip)transpozycja/obracanie bloku macierzy w pytonie
dla np to reprezentacja macierzy i jego bloki
block 1 block 2
+-------+-------+
| . . . | . . . |
| . . 2 | 1 . . |
| . . . | . . . |
+-------+-------+
| . . . | . . . |
| . . . | . . . |
| . 1 . | . . . |
+-------+-------+
block 3 block 4
i obracanie (3, po prawej) powinno skutkować tym
block 1 block 2
+-------+-------+
| . . . | . . . |
| . . 2 | 1 . . |
| . . . | . . . |
+-------+-------+
| . . . | . . . |
| 1 . . | . . . |
| . . . | . . . |
+-------+-------+
block 3 block 4
Chcę znaleźć sposób który przyjmuje numer bloku i obraca tylko ten blok w lewo lub w prawo . Czy jest jakiś łatwy sposób to zrobić?
Czy operacja powinna być na miejscu? –
tak, Musi być na miejscu, lub przynajmniej wynik musi być zapisany z powrotem do oryginalnej matrycy – randomThought