В этом примере вы научитесь транспонировать матрицу (которая создается с помощью вложенного списка).
Чтобы понять этот пример, вы должны знать следующие темы программирования Python:
- Python для цикла
- Список 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) в result (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)
Результат этой программы такой же, как указано выше. Мы использовали понимание вложенных списков для перебора каждого элемента в матрице.