2016-08-02 10 views
0
分割字符串列表

说我有像这样的字符串列表:如何在Python

list = ["Jan 1", "John Smith", "Jan 2", "Bobby Johnson"] 

我怎样才能把它们分成这样两个单独的列表?我的老师提到的一些关于索引,但没有做解释它

li1 = ["Jan 1", "John Smith"] 
li2 = ["Jan 2", "Bobby Johnson"] 
+0

您可以检查[此SO问题](http://stackoverflow.com/q/509211/5488275)和答案(如[this one](http://stackoverflow.com/a/509295/5488275))了解更多关于Python切片的知识。 –

回答

5

好,使用列表分片的一个很好的工作:

li1 = my_list[:2] 
li2 = my_list[2:] 

BTW,不要为一个变量使用名称list因为你隐藏了内置的list类型。

1

如果列表不仅仅是两个条目越长,你可以这样做:

zip(list[0::2],list[1::2]) 

输出:

[('Jan 1', 'John Smith'), ('Jan 2', 'Bobby Johnson')] 
0

一个方法可以做到使其与任意长度的名单在清洁工作和简单的方式:

all_lists = (list[x:x+2] for x in range(0, len(list), 2)) 

然后你可以访问新的列表:

li1 = all_lists[0] 
li2 = all_lists[1] 

或者只是遍历它们:

for new_list in all_lists: 
    print(new_list) 

由于all_lists是发电机(在Python的2.X和3.X),它也将在大量的数据工作。

0

如果列表的长度并不总是将是相同的,或从一开始就知道,你可以这样做:

original_list = [YOUR ORIGINAL LIST] 

A = [:len(original_list)/2] 
B = [len(original_list)/2:] 

A将上半年和B将成为下半年。