W tym przykładzie nauczysz się transponować macierz (utworzoną przy użyciu listy zagnieżdżonej).
Aby zrozumieć ten przykład, powinieneś znać następujące tematy programowania w Pythonie:
- Python for Loop
- Lista Pythona
W Pythonie możemy zaimplementować macierz jako listę zagnieżdżoną (lista wewnątrz listy). Każdy element możemy traktować jako wiersz macierzy.
Na przykład X = ((1, 2), (4, 5), (3, 6))
reprezentowałaby macierz 3x2. Pierwszy wiersz można wybrać jako X(0)
. I element w pierwszej kolumnie w pierwszym wierszu można wybrać jako X(0)(0)
.
Transpozycja macierzy to zamiana wierszy i kolumn. Jest oznaczony jako X '. Element w i-tym wierszu i j-tej kolumnie w X zostanie umieszczony w j-tym wierszu i i-tej kolumnie w X '. Więc jeśli X jest macierzą 3x2, X 'będzie macierzą 2x3.
Oto kilka sposobów osiągnięcia tego w Pythonie.
Transpozycja macierzy za pomocą zagnieżdżonej pętli
# Program to transpose a matrix using a nested loop X = ((12,7), (4 ,5), (3 ,8)) result = ((0,0,0), (0,0,0)) # iterate through rows for i in range(len(X)): # iterate through columns for j in range(len(X(0))): result(j)(i) = X(i)(j) for r in result: print(r)
Wynik
(12, 4, 3) (7, 5, 8)
W tym programie użyliśmy zagnieżdżonych for
pętli do iteracji po każdym wierszu i każdej kolumnie. W każdym punkcie umieszczamy element X (i) (j) w wyniku (j) (i).
Transpozycja macierzy przy użyciu funkcji rozumienia list zagnieżdżonych
''' Program to transpose a matrix using list comprehension''' X = ((12,7), (4 ,5), (3 ,8)) result = ((X(j)(i) for j in range(len(X))) for i in range(len(X(0)))) for r in result: print(r)
Wynik tego programu jest taki sam jak powyżej. Użyliśmy zagnieżdżonego przetwarzania list, aby iterować po każdym elemencie macierzy.