我有一个列表如下:
l=[[1,2,3],[1,2,3],[1,2,3]]
l1,l2,l3 = [],[],[]
for i in xrange(0,len(l)):
l1.append(l[i][0])
l2.append(l[i][1])
l3.append(l[i][2])
所以我会得到:
l1=[1,1,1]
l2=[2,2,2]
l3=[3,3,3]
我有兴趣找到更好的方法。例如,如果我要添加更多值(l4,l5 ......等),我可以找到一种方法,使其更具动态性,而不必继续添加列表。有没有办法以某种方式映射这个给我类似的东西:
new_l=[[1,1,1],[2,2,2],[3,3,3]]
注意:重要的是位置,这些值仅用于简单。
答案 0 :(得分:3)
使用zip
功能:
>>> list(zip(*l)) # You don't need list() in Python 2
[(1, 1, 1), (2, 2, 2), (3, 3, 3)]
如果需要列表列表,则返回元组列表:
>>> [list(x) for x in zip(*l)]
[[1, 1, 1], [2, 2, 2], [3, 3, 3]]