MultiDiGraph.add_nodes_from#
- MultiDiGraph.add_nodes_from(nodes_for_adding, **attr)#
添加多个节点。
- 参数:
- nodes_for_adding可迭代容器
节点的容器(列表、字典、集合等)。或者 (节点, 属性字典) 元组的容器。节点属性使用属性字典进行更新。
- attr关键字参数,可选 (默认= 无属性)
更新 nodes 中所有节点的属性。以元组形式在 nodes 中指定的节点属性优先于通过关键字参数指定的属性。
另请参阅
注意
当从正在修改的图的迭代器中添加节点时,可能会引发
RuntimeError
,并显示消息:RuntimeError: dictionary changed size during iteration
。这发生在图的底层字典在迭代期间被修改时。为避免此错误,将迭代器评估为一个单独的对象,例如使用list(iterator_of_nodes)
,并将此对象传递给G.add_nodes_from
。示例
>>> G = nx.Graph() # or DiGraph, MultiGraph, MultiDiGraph, etc >>> 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)
使用 (node, attrdict) 元组为特定节点更新属性。
>>> 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)]) >>> # wrong way - will raise RuntimeError >>> # G.add_nodes_from(n + 1 for n in G.nodes) >>> # correct way >>> G.add_nodes_from(list(n + 1 for n in G.nodes))