从 NetworkX 动态删除节点图导致错误

问题描述

为什么此代码会导致错误

temp=self.G.nodes(data="nodetype")
for nodes in temp:
    print(nodes)
    print(nodes[0])
    print(nodes[1])

    if nodes[1]==None:
        self.G.remove_node(nodes[0])
print(self.G.nodes(data="nodetype"))

错误 运行时错误:字典在迭代期间改变了大小

我可以通过使用 list 来解决问题,但是我必须使用 2 个 for 循环。我的图表很大。这将是资源的浪费。 这就是我现在正在做的事情。

temp=self.G.nodes(data="nodetype")
        for nodes in temp:
            print(nodes)
            print(nodes[0])
            print(nodes[1])

            if nodes[1]==None:
                blacksheeps.append(nodes[0])
        for nodes in blacksheeps:
            self.G.remove_node(nodes)
        print(self.G.nodes(data="nodetype"))

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)