MultiGraph.add_weighted_edges_from#

MultiGraph.add_weighted_edges_from(ebunch_to_add, weight='weight', **attr)#

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