41 lines
801 B
Python
41 lines
801 B
Python
|
|
from typing import List
|
|
"""
|
|
Transpose a given matrix.
|
|
Args:
|
|
M (List[List]): A 2D list representing the matrix to be transposed.
|
|
Returns:
|
|
List[List]: The transposed matrix.
|
|
Example:
|
|
>>> matrix = [
|
|
... [1, 2, 3],
|
|
... [4, 5, 6]
|
|
... ]
|
|
>>> matrix_transpose(matrix)
|
|
[[1, 4], [2, 5], [3, 6]]
|
|
"""
|
|
|
|
def matrix_transpose(M) -> List[List]:
|
|
row = []
|
|
T = []
|
|
mcols = len(M[0])
|
|
nrows = len(M)
|
|
for i in range(0, mcols):
|
|
for j in range(0, nrows):
|
|
row.append(M[j][i])
|
|
T.append(row)
|
|
row = []
|
|
return T
|
|
|
|
matrix = [
|
|
[1,2,3,0],
|
|
[4,5,6,1],
|
|
[7,8,9,2],
|
|
[1,2,3,4],
|
|
[4,5,6,7]
|
|
]
|
|
|
|
print(matrix_transpose(matrix))
|
|
|
|
# Output
|
|
# [[1, 4, 7, 1, 4], [2, 5, 8, 2, 5], [3, 6, 9, 3, 6], [0, 1, 2, 4, 7]] |