是否有重新组合嵌套列表的快捷方式,如
[[a0,b0,c0],[a1,b1,c1],[a2,b2,b2]]
给出类似的东西
[[a0,a1,a2],[b0,b1,b2],[c0,c1,c2]]
答案 0 :(得分:5)
是的,使用zip()
:
transposed = zip(*matrix)
*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')]
输出使用嵌套元组;如果您需要嵌套列表,请在事后用以下内容对其进行转换:
map(list, zip(*matrix))
或
[list(t) for t in zip(*matrix)]