python leetcode刷题 (38):867. 转置矩阵

    xiaoxiao2023-11-10  152

    题目描述:

    给定一个矩阵 A, 返回 A 的转置矩阵。

    矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。

    示例 1:

    输入:[[1,2,3],[4,5,6],[7,8,9]] 输出:[[1,4,7],[2,5,8],[3,6,9]] 示例 2:

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

    提示:

    1 <= A.length <= 1000 1 <= A[0].length <= 1000

    解题过程:

    class Solution: def transpose(self, A: List[List[int]]) -> List[List[int]]: R,c=len(A),len(A[0]) ans=[[None]*R for _ in range(c)] for r,row in enumerate(A): for c ,val in enumerate(row): ans[c][r]=val return ans

    另解:

    class Solution: def transpose(self, A: List[List[int]]) -> List[List[int]]: return [*zip(*A)]

    总结:

    enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标;for _ in range(c),_本质上是一个普通变量,人们约定俗成,在不需要计数值时使用;注意解法一构造矩阵的方法,使用None来占位;使用zip函数也可构建转置矩阵。
    最新回复(0)