如何只打印列表的某个部分?

时间:2017-10-17 21:42:52

标签: python python-3.x

如果我想获得列表的某个部分来打印我需要做什么?

这是一个例子;说:

list = [DOG, CAT, LION, TIGER, CAT, DOG, LION, LION, TIGER]

我希望它只打印以CAT开头的实例并停在TIGER。因此,从上面的列表中我想将第一个实例CAT,LION,TIGER添加到列表中,将第二个实例CAT,DOG,LION,LION,TIGER添加到另一个列表中。所以将有两个列表:

list1 = [CAT, LION]

list2 = [CAT, DOG, LION, LION]

那么我有办法将列表拆分到某一点吗?

1 个答案:

答案 0 :(得分:0)

使用algorithm recommended in the comments

my_list = ['DOG', 'CAT', 'LION', 'TIGER', 'CAT', 'DOG', 'LION', 'LION', 'TIGER']

# get the indicies of each element 'CAT' from the list
cat_indicies = [i for i, x in enumerate(my_list) if x == "CAT"]

# list comprehension for all elements between first and second instance of 'CAT'
my_list1 = [my_list[i] for i in range(*cat_indicies)]

# list of all elements starting from second instance of 'CAT'
my_list2 = my_list[cat_indicies[-1]::]

print(my_list1)  # ['CAT', 'LION', 'TIGER']
print(my_list2)  # ['CAT', 'DOG', 'LION', 'LION', 'TIGER']

请注意问题中提到的要求的列表结果,并且不一定与问题中的示例列表建议匹配