DiGraph.remove_nodes_from#

DiGraph.remove_nodes_from(nodes)[source]#

移除多个节点。

Parameters:
nodes可迭代容器

包含节点的容器(列表、字典、集合等)。如果容器中的某个节点不在图中,它将被静默忽略。

See also

remove_node

Notes

当从正在迭代的图中移除节点时,会引发一个 RuntimeError ,消息为:

RuntimeError: dictionary changed size during iteration 。这是因为在迭代过程中修改了图的底层字典。为了避免这个错误,请将迭代器评估为一个单独的对象,例如使用 list(iterator_of_nodes) ,然后将这个对象传递给 G.remove_nodes_from

Examples

>>> G = nx.path_graph(3)  # 或 DiGraph, MultiGraph, MultiDiGraph 等
>>> e = list(G.nodes)
>>> e
[0, 1, 2]
>>> G.remove_nodes_from(e)
>>> list(G.nodes)
[]

如果在使用迭代器修改同一个图时,请先评估该迭代器

>>> G = nx.DiGraph([(0, 1), (1, 2), (3, 4)])
>>> # 这条命令会失败,因为图的字典在迭代过程中被修改了
>>> # G.remove_nodes_from(n for n in G.nodes if n < 2)
>>> # 这条命令会成功,因为图的底层字典没有被修改
>>> G.remove_nodes_from(list(n for n in G.nodes if n < 2))