在Python中重新排序嵌套列表条目

gre*_*ole 3 python list

是否有重新组合嵌套列表的快捷方式

[[a0,b0,c0],[a1,b1,c1],[a2,b2,b2]]
Run Code Online (Sandbox Code Playgroud)

给这样的东西

 [[a0,a1,a2],[b0,b1,b2],[c0,c1,c2]]
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 5

是的,使用zip():

transposed = zip(*matrix)
Run Code Online (Sandbox Code Playgroud)

*matrix将所有嵌套列表matrix作为单独的参数应用于zip()函数,就像您键入的一样zip(matrix[0], matrix[1], matrix[2]); zip()获取输入序列并按输出新序列.

演示:

>>> matrix = [['a0', 'b0', 'c0'], ['a1', 'b1', 'c1'], ['a2', 'b2', 'b2']]
>>> zip(*matrix)
[('a0', 'a1', 'a2'), ('b0', 'b1', 'b2'), ('c0', 'c1', 'b2')]
Run Code Online (Sandbox Code Playgroud)

输出使用嵌套元组; 如果你需要嵌套列表,请在事后用以下方法对它们进行转换:

map(list, zip(*matrix))
Run Code Online (Sandbox Code Playgroud)

要么

[list(t) for t in zip(*matrix)]
Run Code Online (Sandbox Code Playgroud)