Graph.add_weighted_edges_from#
- Graph.add_weighted_edges_from(ebunch_to_add, weight='weight', **attr)[source]#
使用指定的权重属性添加
ebunch_to_add
中的加权边- 参数:
- ebunch_to_add边容器
列表或容器中给出的每条边都将添加到图中。边必须以 3 元组 (u, v, w) 的形式给出,其中 w 是一个数字。
- weight字符串, 可选 (默认= ‘weight’)
要添加的边权重的属性名称。
- attr关键字参数, 可选 (默认= 无属性)
要为所有边添加/更新的边属性。
另请参阅
add_edge
添加单条边
add_edges_from
添加多条边
备注
对于 Graph/DiGraph,两次添加同一条边只会更新边的属性。对于 MultiGraph/MultiDiGraph,会存储重复的边。
从您正在修改的图的迭代器中添加边时,可能会引发
RuntimeError
,并显示消息:RuntimeError: dictionary changed size during iteration
。这发生在图的底层字典在迭代期间被修改时。为避免此错误,请将迭代器求值为一个单独的对象,例如使用list(iterator_of_edges)
,并将此对象传递给G.add_weighted_edges_from
。示例
>>> G = nx.Graph() # or DiGraph, MultiGraph, MultiDiGraph, etc >>> G.add_weighted_edges_from([(0, 1, 3.0), (1, 2, 7.5)])
在传递边迭代器之前对其求值
>>> G = nx.Graph([(1, 2), (2, 3), (3, 4)]) >>> weight = 0.1 >>> # Grow graph by one new node, adding edges to all existing nodes. >>> # wrong way - will raise RuntimeError >>> # G.add_weighted_edges_from(((5, n, weight) for n in G.nodes)) >>> # correct way - note that there will be no self-edge for node 5 >>> G.add_weighted_edges_from(list((5, n, weight) for n in G.nodes))