python list 矩阵转置

不调用numpy

matrix = [[1,10,4,2],[9,3,8,7],[15,16,17,12]]
matrix_t = zip(*matrix)
"""
zip中的 *list类似于解压
*matrix = [1, 10, 4, 2] [9, 3, 8, 7] [15, 16, 17, 12]
再用zip压缩
"""

补充
zip的用法

a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]
zipped = zip(a,b)     # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
zip(a,c)              # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
zip(*zipped)          # 与 zip 相反,可理解为解压,为zip的逆过程,可用于矩阵的转置
[(1, 2, 3), (4, 5, 6)]
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐