2013-07-24 45 views
3

我有一个列表要分成两部分,然后每个部分必须写入不同的列表。我试过的代码在这里,它工作正常。划分列表并将列表附加到单独的列表python

import sys 
a = ['name','2',3,4,5,'a','b','c','d',10,4,'lol','3'] 
print len(a) 
list1 =[] 
list2 = [] 
for i in xrange(0, (len(a)/2)): 
    list1.append(a[i]) 
    list2.append(a[(i)+((len(a)/2))]) 
list2.append(a[(len(a))-1]) 
print list1 
print list2 

我想知道是否有这样做的任何其他更好的替代方式..

回答

5

使用Python slice notation

a = ['name', '2', 3, 4, 5, 'a', 'b', 'c', 'd', 10, 4, 'lol', '3'] 
n = len(a) 
print(n) 
mid = n // 2 
list1, list2 = a[:mid], a[mid:] 
print(list1) 
print(list2) 
+0

非常感谢你... –

1
a = ['name','2',3,4,5,'a','b','c','d',10,4,'lol','3'] 
mid = len(a)//2 
list1, list2=a[:mid], a[mid:] 


>>> list1 
['name', '2', 3, 4, 5, 'a'] 
>>> list2 
['b', 'c', 'd', 10, 4, 'lol', '3'] 

颇为相似回答1,但有点更短,更快一点

+0

谢谢...干杯! –