În acest exemplu, veți învăța să transpuneți o matrice (care este creată utilizând o listă imbricată).
Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele următoarelor subiecte de programare Python:
- Python pentru buclă
- Lista Python
În Python, putem implementa o matrice ca o listă imbricată (listă într-o listă). Putem trata fiecare element ca pe un rând al matricei.
De exemplu X = ((1, 2), (4, 5), (3, 6))
ar reprezenta o matrice 3x2. Primul rând poate fi selectată ca X(0)
. Și, elementul din coloana primul rând mai întâi poate fi selectată ca X(0)(0)
.
Transpunerea unei matrice este schimbul de rânduri și coloane. Este notat ca X '. Elementul din al doilea rând și coloana a X-a din X va fi plasat pe al doilea rând și coloana a X-a în X '. Deci, dacă X este o matrice 3x2, X 'va fi o matrice 2x3.
Iată câteva modalități de a realiza acest lucru în Python.
Transpunerea matricei folosind Nested Loop
# 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)
Ieșire
(12, 4, 3) (7, 5, 8)
În acest program, am folosit for
bucle imbricate pentru a itera prin fiecare rând și fiecare coloană. În fiecare punct plasăm elementul X (i) (j) în rezultatul (j) (i).
Transpunerea matricei utilizând înțelegerea listei imbricate
''' 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)
Rezultatul acestui program este același ca mai sus. Am folosit înțelegerea listei imbricate pentru a itera prin fiecare element din matrice.