MultiDiGraph.add_nodes_from#

MultiDiGraph.add_nodes_from(nodes_for_adding, **attr)#

添加多个节点。

Parameters:
nodes_for_adding可迭代容器

一个包含节点的容器(列表、字典、集合等)。 或者 一个包含(节点,属性字典)元组的容器。 节点属性通过属性字典进行更新。

attr关键字参数, 可选 (默认=无属性)

更新所有节点的属性。 在节点中以元组形式指定的节点属性优先于通过关键字参数指定的属性。

See also

add_node

Notes

当从正在更改的图的迭代器中添加节点时,可能会引发 RuntimeError ,消息为:

RuntimeError: dictionary changed size during iteration

这是因为在迭代过程中图的基础字典被修改了。为了避免这个错误,可以将迭代器评估为一个单独的对象,例如使用 list(iterator_of_nodes) ,然后将这个对象传递给 G.add_nodes_from

Examples

>>> G = nx.Graph()  # 或 DiGraph, MultiGraph, MultiDiGraph 等
>>> G.add_nodes_from("Hello")
>>> K3 = nx.Graph([(0, 1), (1, 2), (2, 0)])
>>> G.add_nodes_from(K3)
>>> sorted(G.nodes(), key=str)
[0, 1, 2, 'H', 'e', 'l', 'o']

使用关键字更新每个节点的特定属性。

>>> G.add_nodes_from([1, 2], size=10)
>>> G.add_nodes_from([3, 4], weight=0.4)

使用(节点,属性字典)元组更新特定节点的属性。

>>> G.add_nodes_from([(1, dict(size=11)), (2, {"color": "blue"})])
>>> G.nodes[1]["size"]
11
>>> H = nx.Graph()
>>> H.add_nodes_from(G.nodes(data=True))
>>> H.nodes[1]["size"]
11

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

>>> G = nx.DiGraph([(0, 1), (1, 2), (3, 4)])
>>> # 错误的方式 - 会引发 RuntimeError
>>> # G.add_nodes_from(n + 1 for n in G.nodes)
>>> # 正确的方式
>>> G.add_nodes_from(list(n + 1 for n in G.nodes))