在 Python 中,如何将矩阵逆时针旋转 90 度?

新手上路,请多包涵
>>> def rotate_matrix( k: List[List[int]]):
    """
    For example, if I have:
    m = [[1,2,3],
         [2,3,3],
         [5,4,3]]
    rotate_matrix(m) should give me [[3,3,3],[2,3,4],[1,2,5]].
    """

编辑:最好没有 numpy。

原文由 user10634718 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 736
1 个回答

这是纯 python 中的一行逆时针矩阵旋转(即,没有 numpy):

 new_matrix = [[m[j][i] for j in range(len(m))] for i in range(len(m[0])-1,-1,-1)]

如果你想在一个函数中这样做,那么

def rotate_matrix( m ):
    return [[m[j][i] for j in range(len(m))] for i in range(len(m[0])-1,-1,-1)]

无论哪种方式,结果

m = [ [1,2,3], [2,3,3], [5,4,3]]

[[3, 3, 3], [2, 3, 4], [1, 2, 5]]

另外,如果你想要通常的转置,那么简单的一行纯 python 版本是

[[m[j][i] for j in range(len(m))] for i in range(len(m[0]))]

原文由 DrM 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题