#06 中等

题目描述

将一个二维矩阵(列表的列表)进行转置,即行变列、列变行。例如 2x3 的矩阵转置后变为 3x2。

示例

输入:matrix = [[1, 2, 3], [4, 5, 6]]

输出:[[1, 4], [2, 5], [3, 6]]

提示

使用 zip(*matrix) 可以优雅地实现矩阵转置,zip 会将每个子列表的相同索引位置的元素组合成元组。

参考答案

def transpose(matrix):
    """矩阵转置"""
    # zip(*matrix) 将每行的对应列元素打包
    return [list(row) for row in zip(*matrix)]

# 测试
matrix = [[1, 2, 3], [4, 5, 6]]
result = transpose(matrix)
print(result)  # [[1, 4], [2, 5], [3, 6]]

# 不规则矩阵也可以处理
matrix2 = [[1, 2], [3, 4], [5, 6]]
print(transpose(matrix2))  # [[1, 3, 5], [2, 4, 6]]