我想为Python创建一个矩阵转置函数,但似乎无法使其工作。 假设我有一个
theArray = [['a','b','c'],['d','e','f'],['g','h','i']]
我希望我的函数能够产生
newArray = [['a','d','g'],['b','e','h'],['c', 'f', 'i']]
换句话说,如果我要将这个二维数组按列和行打印出来,我希望行变成列,列变成行。
我已经做了这个,但它不起作用。
def matrixTranspose(anArray):
transposed = [None]*len(anArray[0])
for t in range(len(anArray)):
for tt in range(len(anArray[t])):
transposed[t] = [None]*len(anArray)
transposed[t][tt] = anArray[tt][t]
print transposed
itertools
的izip
可以节省大数组的内存消耗。 - Antony Hatchkins[['a', 'b', 'g'], ['d', 'e', 'h'], ['c', 'f', 'i']]
而不是[('a', 'd', 'g'), ('b', 'e', 'h'), ('c', 'f', 'i')]
? - acollection_zip
已经返回一个迭代器:https://docs.python.org/3.0/whatsnew/3.0.html#views-and-iterators-instead-of-lists - xuiqzy