如果我有一张单子,比如说
lst = ['hello', 'foo', 'test', 'world', 'bar', 'idk']
我想把它分成一个子列表,其中'foo'
和{
我目前的做法如下。在
def findLoop(t):
inds = [index for index, item in enumerate(t) if item in ["FOO", "BAR"]]
centre = inds[(len(inds)/2)-1:(len(inds)/2)+1]
newCentre = t[centre[0]:centre[1]+1]
return t[:centre[0]] + [newCentre] + t[centre[1]+1:]
def getLoops(t):
inds = len([index for index, item in enumerate(t) if item in ["FOO", "BAR"]])
for i in range(inds):
t = findLoop(t)
return t
这看起来有点混乱,但它对嵌套的start/end关键字非常有效,因此子列表可以在子列表中形成,但对于不在一起的多个start/end关键字则不起作用。嵌套并不重要,因此任何帮助都将不胜感激。在
一种创造性的方法是将列表转储到JSON字符串中,在需要的地方添加},并将JSON字符串解析回Python嵌套列表:
[
和{它的优点是易于理解,对任意嵌套列表都能很好地工作,并且可以检测结构是否不正确。不过,您需要确保您的单词不包含
"
。在多起点,多终点(基于马克·托洛宁的回答)
退货:
^{pr2}$单向使用切片:
相关问题 更多 >
编程相关推荐