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))