将整数列表分成两个列表的最佳方法是什么?

时间:2013-12-14 04:58:38

标签: python list

所以今天我正在处理一段代码,我想知道是否有更容易的"在不知道列表长度的情况下将列表分成两部分的方法。 这就是我所做的:

#say that myList = [0,1,2,3,4,5,6]

tran = 0
L1 = []
L2 = []
while (len(myList) > 0):
    tran = myList.pop(0)
    L1.append(tran)
    if (len(myList) > 0):
        tran = myList.pop(0)
        L2.append(tran)

我还想提一下,我希望每个列表都能从myList中获取第一个值。结果我想从这个例子中得到:

L1 = [0,2,4,6]
L2 = [1,3,5]

2 个答案:

答案 0 :(得分:8)

你可以做一些与切片相同的东西:

>>> mylist = range(7)
>>> mylist
[0, 1, 2, 3, 4, 5, 6]
>>> a,b = mylist[::2],mylist[1::2]
>>> a
[0, 2, 4, 6]
>>> b
[1, 3, 5]

答案 1 :(得分:0)

这个怎么样:

>>> dd = defaultdict(list)
>>> z = [ dd[x].append(y) for x,y in [(('a',i),('b',i))[i % 2] for i in range(1,10)] ]
>>> dd.items()
[('a', [2, 4, 6, 8]), ('b', [1, 3, 5, 7, 9])]
>>>