python的list类型不能像numpy的array类型可以直接转置
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
以下实例展示了 zip() 的使用方法:
a = [1,2,3]
b = [4,5,6]
zipped = zip(a,b) # 打包为元组的列表
输出zipped为一个多元组列表:
[(1, 4), (2, 5), (3, 6)]
因此,使用zip()实现list转置,然后用map()将得到的多元组列表转成二维矩阵的方法为:
a = [[1,2,3], [4,5,6], [7, 8, 9], [10, 11, 12]]
a = list(map(list, zip(*a)))
输出a为:
[[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]]
【注】在python3中map()输出结果为一个map object类型,因此使用list()将其转换为list