首页 > 解决方案 > 是否存在一个命令来提取列表的一部分并将其放在同一个列表的开头?

问题描述

我并试图做这样的事情:

list=[a,b,cow,c,d,elefant,f]
def find_between_tags(self,lst, start_tag, end_tag):#(1) this funtion take a sub list of the list between the start_tag and the end_tag
    start_index = lst.index(start_tag)#(1)
    end_index = lst.index(end_tag, start_index)#(1)
    return lst[start_index + 1: end_index]#(1)
#some command like
list=**up**(find_between_tags(list,cow,elefant))
print(list)

我正在搜索的操作的结果是

[cow,c,d,elefant,a,b,f]

标签: pythonpython-3.xlistsorting

解决方案


您已经找到了start_tagand的索引end_tag,您现在只需要使用这些索引来制定您的结果列表。

lst = ['a','b','cow','c','d','elefant','f']

def find_between_tags(lst, start_tag, end_tag):

    start_index = lst.index(start_tag)
    end_index = lst.index(end_tag)
    return lst[start_index: end_index+1]+lst[0:start_index]+lst[end_index+1: len(lst)]

print(find_between_tags(lst, 'cow', 'elefant'))
#['cow', 'c', 'd', 'elefant', 'a', 'b', 'f']

推荐阅读