说我有一个像这样的字符串列表:
list = ["Jan 1", "John Smith", "Jan 2", "Bobby Johnson"]
如何将它们分成两个单独的列表?我的老师提到了关于索引的一些内容,但没有很好地解释它
li1 = ["Jan 1", "John Smith"]
li2 = ["Jan 2", "Bobby Johnson"]
答案 0 :(得分:5)
好吧,使用列表切片:
li1 = my_list[:2]
li2 = my_list[2:]
顺便说一句,请不要将名称list
用于变量,因为您要隐藏内置的list
类型。
答案 1 :(得分:1)
如果您的列表超过两个条目,则可以执行此操作:
zip(list[0::2],list[1::2])
输出:
[('Jan 1', 'John Smith'), ('Jan 2', 'Bobby Johnson')]
答案 2 :(得分: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中),它也可以处理大块数据。
答案 3 :(得分:0)
如果列表的长度并不总是相同,或从一开始就知道,你可以这样做:
original_list = [YOUR ORIGINAL LIST]
A = [:len(original_list)/2]
B = [len(original_list)/2:]
A将是上半场,B将是下半场。