I dette eksempel lærer du at transponere en matrix (som oprettes ved hjælp af en indlejret liste).
For at forstå dette eksempel skal du have kendskab til følgende Python-programmeringsemner:
- Python for Loop
- Python-liste
I Python kan vi implementere en matrix som en indlejret liste (liste inde i en liste). Vi kan behandle hvert element som en række i matrixen.
For eksempel X = ((1, 2), (4, 5), (3, 6))
repræsenterer en 3x2 matrix. Den første række kan vælges som X(0)
. Og elementet i første række første række kan vælges som X(0)(0)
.
Transponering af en matrix er udveksling af rækker og kolonner. Det betegnes som X '. Elementet i række I og Jth kolonne i X placeres i JT række og I kolonne i X '. Så hvis X er en 3x2 matrix, vil X 'være en 2x3 matrix.
Her er et par måder at opnå dette på Python.
Matrix Transponere ved hjælp af indlejret løkke
# 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)
Produktion
(12, 4, 3) (7, 5, 8)
I dette program har vi brugt indlejrede for
sløjfer til at gentage hver række og hver kolonne. På hvert punkt placerer vi X (i) (j) -elementet i resultat (j) (i).
Matrix Transponere ved hjælp af indlejret listeforståelse
''' 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)
Resultatet af dette program er det samme som ovenfor. Vi har brugt indlejret listeforståelse til at gentage hvert element i matrixen.