我有一份清单:
[2,3,5,"TAG",6,7,3,2,6,"TAG",9,9,8,3]
我想返回一个列表,其中包含位于“标记”之间的值的嵌套子列表
因此,生成的列表如下所示:
[[2,3,5], [6,7,3,2,6], [9,9,8,3]]
我在下面创建了一个方法,试图实现这一点,但不起作用:
def returnListBetweenTag(lst, tag):
temp = []
k = lst.index(tag)
while lst != []:
temp.append(lst[0:k])
del lst[0:k+1]
return temp
打印出来:
[[2, 3, 5], [6, 7, 3], [6, 'TAG', 9], [8, 3]]
有谁能帮我理解我做错了什么,并提出一些解决的建议吗
这里有一个用^{} 实现的方法
这也可以理解为:
这确实不是一个好方法,但是你可以让它工作
首先,在第一次之后再也不做
k = lst.index(tag)
。 所以,在你的列表中,k
变成了永远的3。但是你总是把前三个元素从列表中去掉,所以首先k[0:3]
是[2, 3, 5]
,然后是[6, 7, 3]
,然后是3,[6, 'TAG', 9]
,依此类推。你每次都得打电话第二,当列表中没有更多的
'TAG'
时会发生什么?lst.index
将引发异常。所以你得处理好当使用generator时,这是相当直接的:
代码:
测试代码:
结果:
相关问题 更多 >
编程相关推荐