Пример лаконичной реализации операции транспонирования матриц с использованием парадигмы функционального программирования. Транспонированная матрица — матрица \(A^T\), полученная из исходной матрицы \(A\) заменой строк на столбцы. Формально, транспонированная матрица для матрицы \(A\) размеров \(m * n\) — матрица \(A^T\) размеров \(n*m\), определённая как \(A_{ij} = A_{ji}\)
from pprint import pprint # модуль pprint используется для удобного вывода на экран
matrix = [[0.5, 0, 0, 0, 0],
[ 1, 0.5, 0, 0, 0],
[ 1, 1, 0.5, 0, 0],
[ 1, 1, 1, 0.5, 0],
[ 1, 1, 1, 1, 0.5]]
matrix_t = list(zip(*matrix)) # непосредственно транспонирование
pprint(matrix)
pprint(matrix_t)
Вывод результата:
[[0.5, 0, 0, 0, 0],
[1, 0.5, 0, 0, 0],
[1, 1, 0.5, 0, 0],
[1, 1, 1, 0.5, 0],
[1, 1, 1, 1, 0.5]]
[(0.5, 1, 1, 1, 1),
(0, 0.5, 1, 1, 1),
(0, 0, 0.5, 1, 1),
(0, 0, 0, 0.5, 1),
(0, 0, 0, 0, 0.5)]
2015-11-28 • Просмотров [ 8957 ]