Python 删除父目录树中的节点
我有一个nltk父目录树,我想删除父目录树中的一些节点(比如刚开始的叶子节点)。我尝试在python中使用del函数,但它只删除节点的值,而不删除节点及其关联的边。如何删除节点以及进入节点的边Python 删除父目录树中的节点,python,nlp,nltk,Python,Nlp,Nltk,我有一个nltk父目录树,我想删除父目录树中的一些节点(比如刚开始的叶子节点)。我尝试在python中使用del函数,但它只删除节点的值,而不删除节点及其关联的边。如何删除节点以及进入节点的边 v1 = parser.parse('How to lose weight ?') ptree = ParentedTree.convert(v1) t = ptree for leaf in leaf_values: leaf_index = leaf_values.index(leaf)
v1 = parser.parse('How to lose weight ?')
ptree = ParentedTree.convert(v1)
t = ptree
for leaf in leaf_values:
leaf_index = leaf_values.index(leaf)
tree_location = ptree.leaf_treeposition(leaf_index)
print tree_location
del ptree[tree_location]
ptree.pretty_print()
ptree = t
leaf_values = ptree.leaves()
为什么不直接将
ptree[tree\u location]
设置为None
?然后,垃圾收集应该为您删除关联的内存。我尝试过这样做,但它会将其值设置为“无”,而不是删除节点。如果您无法再访问节点,这不是有效的删除吗?是的。这就是我想要的。因此,如果我在第一次迭代中删除叶节点,那么叶的父节点将成为下一次迭代中的叶。