2013-12-14 135 views
0

所以我今天正在研究一段代码,我想知道是否有任何“更容易”的方式将列表分成两份而不知道列表的长度。 这里是我做了什么:将整数列表分为两个列表的最佳方法?

#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] 
+0

什么来划分的标准清单? – Christian

+0

@Christian你是什么意思?我认为我的代码总结了最后一句话。 – kiasy

+2

我的意思是,期望的输出是什么?你可以用它编辑你的文章吗? – Christian

回答

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] 
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])] 
>>> 
相关问题