交换多维 Python 列表的轴

Fra*_*urt 2 python arrays python-2.x multidimensional-array python-2.7

如何交换多维 Python 列表的轴?

例如,如果多维 Python 列表是input = [[1,2], [3,4,5],[6]],我希望将其output = [[1,3,6], [2,4], [5]]作为输出。

numpy.swapaxes允许对数组执行此操作,但它不支持维度具有不同大小的情况,如给定示例中所示。与典型的map(list, zip(*l)).

Ahs*_*que 5

尝试这个:

from itertools import izip_longest
print [[i for i in element if i is not None] for element in  list(izip_longest(*input))]
Run Code Online (Sandbox Code Playgroud)

输出:

[[1, 3, 6], [2, 4], [5]]
Run Code Online (Sandbox Code Playgroud)

iterools.izip_longest在 Python 2.6 中引入。)