gpt4 book ai didi

python - 在python中递归地从树中删除项目

转载 作者:太空宇宙 更新时间:2023-11-04 03:46:31 25 4
gpt4 key购买 nike

seen2 = set()

def eliminate_abs(d): ##remove all entries that connect to the abstraction node, type(d) = list
def rec(x):
if x not in seen2:
seen2.add(x)
a = x.hypernyms()
if len(a) != 0:
kk = a[0]
if re.search('abstraction',str(kk)):
syns.remove(ii)
else:
rec(kk)

for ii in d: ##type(ii) = <class 'nltk.corpus.reader.wordnet.Synset'>
rec(ii)

eliminate_abs(syns)

列表“syns”最终将被转换成树,但我首先需要删除所有最终连接到抽象节点的项目。我想要这个函数做的是递归地查看“syns”中每个项目的所有上位词,如果找到“abstraction”,则从“syns”中删除原始术语。出于某种原因,这只是删除了其中的一些。

最佳答案

由于您在遍历 syns 时正在处理它,因此您应该遍历 syns 的一部分,即制作列表的副本并遍历副本:

for ii in d[:]:
rec(ii)

关于python - 在python中递归地从树中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23524811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com