映射python中的列表列表

时间:2015-02-11 05:33:23

标签: python list mapping

我有一个列表如下:

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]]

注意:重要的是位置,这些值仅用于简单。

1 个答案:

答案 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]]