说我有像这样的字符串列表:如何在Python
list = ["Jan 1", "John Smith", "Jan 2", "Bobby Johnson"]
我怎样才能把它们分成这样两个单独的列表?我的老师提到的一些关于索引,但没有做解释它
li1 = ["Jan 1", "John Smith"]
li2 = ["Jan 2", "Bobby Johnson"]
说我有像这样的字符串列表:如何在Python
list = ["Jan 1", "John Smith", "Jan 2", "Bobby Johnson"]
我怎样才能把它们分成这样两个单独的列表?我的老师提到的一些关于索引,但没有做解释它
li1 = ["Jan 1", "John Smith"]
li2 = ["Jan 2", "Bobby Johnson"]
好,使用列表分片的一个很好的工作:
li1 = my_list[:2]
li2 = my_list[2:]
BTW,不要为一个变量使用名称list
因为你隐藏了内置的list
类型。
如果列表不仅仅是两个条目越长,你可以这样做:
zip(list[0::2],list[1::2])
输出:
[('Jan 1', 'John Smith'), ('Jan 2', 'Bobby Johnson')]
一个方法可以做到使其与任意长度的名单在清洁工作和简单的方式:
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),它也将在大量的数据工作。
如果列表的长度并不总是将是相同的,或从一开始就知道,你可以这样做:
original_list = [YOUR ORIGINAL LIST]
A = [:len(original_list)/2]
B = [len(original_list)/2:]
A将上半年和B将成为下半年。
您可以检查[此SO问题](http://stackoverflow.com/q/509211/5488275)和答案(如[this one](http://stackoverflow.com/a/509295/5488275))了解更多关于Python切片的知识。 –