В този пример ще се научите да транспонирате матрица (която се създава с помощта на вложен списък).
За да разберете този пример, трябва да имате познанията по следните теми за програмиране на Python:
- Python за Loop
- Списък на Python
В Python можем да реализираме матрица като вложен списък (списък в списък). Можем да третираме всеки елемент като ред от матрицата.
Например X = ((1, 2), (4, 5), (3, 6))
ще представлява матрица 3x2. Първият ред може да бъде избран като X(0)
. И, елементът в първия ред на първата колона може да бъде избран като X(0)(0)
.
Транспонирането на матрица е обмен на редове и колони. Означава се като X '. Елементът в i-ти ред и j-та колона в X ще бъде поставен в j-ти ред и i-та колона в X '. Така че, ако X е матрица 3x2, X 'ще бъде матрица 2x3.
Ето няколко начина да постигнете това в Python.
Транспортиране на матрица с помощта на вложен цикъл
# 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)
Изход
(12, 4, 3) (7, 5, 8)
В тази програма използвахме вложени for
цикли, за да прегледаме всеки ред и всяка колона. Във всяка точка поставяме елемента X (i) (j) в резултат (j) (i).
Транспортиране на матрица, като се използва разбиране на вложен списък
''' 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)
Резултатът от тази програма е същият, както по-горе. Използвахме разбиране на вложен списък, за да прегледаме всеки елемент в матрицата.