如何在Python

时间:2016-08-02 13:06:21

标签: python list python-3.x

说我有一个像这样的字符串列表:

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

如何将它们分成两个单独的列表?我的老师提到了关于索引的一些内容,但没有很好地解释它

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

4 个答案:

答案 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将是下半场。