DiGraph.add_weighted_edges_from#

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

ebunch_to_add 中添加指定权重属性的加权边

Parameters:
ebunch_to_add边的容器

列表或容器中的每条边都将被添加到图中。边必须以 3-元组 (u, v, w) 的形式给出,其中 w 是一个数字。

weight字符串, 可选 (默认= ‘weight’)

要添加的边权重的属性名称。

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

要为所有边添加/更新的边属性。

See also

add_edge

添加单条边

add_edges_from

添加多条边

Notes

对于 Graph/DiGraph,添加相同的边两次只会更新边数据。对于 MultiGraph/MultiDiGraph,重复的边会被存储。

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

RuntimeError: dictionary changed size during iteration 。这发生在图的基础字典在迭代过程中被修改时。为了避免这个错误,请将迭代器评估为一个单独的对象,例如使用 list(iterator_of_edges) ,然后将这个对象传递给 G.add_weighted_edges_from

Examples

>>> G = nx.Graph()  # 或 DiGraph, MultiGraph, MultiDiGraph 等
>>> 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
>>> # 通过向所有现有节点添加边来扩展图,增加一个新节点。
>>> # 错误的方式 - 会引发 RuntimeError
>>> # G.add_weighted_edges_from(((5, n, weight) for n in G.nodes))
>>> # 正确的方式 - 注意节点 5 不会有自环
>>> G.add_weighted_edges_from(list((5, n, weight) for n in G.nodes))