运行时错误:字典在迭代过程中更改了大小



我有一个社交网络图'G'。

我试图检查我的图的键是否也在特征数据集中。我运行了这个命令:

for node in G.nodes():
if node in caste1.keys():
pass
else:
G = G.remove_node(node)

它显示了一个错误RuntimeError:字典在迭代期间更改了大小

RuntimeError是不言自明的。您正在更改在迭代中迭代的对象的大小。它扰乱了循环。

您可以做的是首先在节点之间迭代以获得要删除的节点,并将其存储在一个单独的变量中。然后,您可以使用此变量进行迭代以删除节点:

# Identify nodes for removal
nodes2remove = [node for node in G.nodes() if node not in caste1.keys()]
# Remove target-nodes
for node in nodes2remove:
G = G.remove_node(node)

最新更新