如果我想获得列表的某个部分来打印我需要做什么?
这是一个例子;说:
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]
那么我有办法将列表拆分到某一点吗?
答案 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']
请注意问题中提到的要求的列表结果,并且不一定与问题中的示例列表建议匹配