我正在使用 nltk.tree.ParentedTree 的一个实例,但我认为这个问题比这更笼统。
基本上,我有一个任意深度嵌套的列表,我想删除列表的一部分(尽管我不知道那部分嵌套的深度)。我有一个search
函数可以找到列表中某个项目的出现,它返回一个n
整数元组,其中n
是找到的元素的深度。
例如,假设我有l = [[['cat', 'dog']], ['fish']]
当我调用search(l, 'dog')
它时返回(0, 0, 1)
。这是在告诉我l[0][0][1] == 'dog'
。如果我提前知道这'dog'
发生了,我可以通过执行将其从列表中删除。但我不知道提前,所以我需要以编程方式做同样的事情。(0, 0, 1)
del l[0][0][1]
'dog'
我可以通过执行访问列表中的元素
indices = search(l, 'dog')
for i in indices:
l = l[i]
所以现在l
是'dog'
。但是,我不确定如何从那里将其从列表中删除。我不只是想将其设置为None
.