skip to content
Liu Yang's Blog

Python 原生代码实现矩阵转置

A = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
]
list(zip(*A))
# [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
  • *A 把 A 拆成多行,分别作为参数传给 zip
  • zip 把多个序列按位置打包,同时迭代多行,相当于按列取元素,也就实现了转置

结果里每一行是元组,需要列表的话写成 [list(row) for row in zip(*A)]。