MultiDiGraph.add_edges_from#

MultiDiGraph.add_edges_from(ebunch_to_add, **attr)#

添加 ebunch_to_add 中的所有边。

Parameters:
ebunch_to_add边容器

容器中的每条边都将被添加到图中。边可以是:

  • 2-元组 (u, v) 或

  • 3-元组 (u, v, d) 表示带有数据字典 d 的边,或

  • 3-元组 (u, v, k) 表示不可迭代的键 k,或

  • 4-元组 (u, v, k, d) 表示带有数据和键 k 的边

attr关键字参数, 可选

可以使用关键字参数分配边数据(或标签或对象)。

Returns:
分配给 ebunch 中边的边键列表。

See also

add_edge

添加单条边

add_weighted_edges_from

添加加权边的便捷方式

Notes

添加相同的边两次没有效果,但每次添加重复边时,任何边数据都会更新。

在 ebunch 中指定的边属性优先于通过关键字参数指定的属性。

默认键是使用方法 new_edge_key() 生成的。可以通过子类化基类并提供自定义的 new_edge_key() 方法来覆盖此方法。

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

RuntimeError: dictionary changed size during iteration 。当图的底层字典在迭代期间被修改时,会发生这种情况。为了避免此错误,请将迭代器评估为单独的对象,例如使用 list(iterator_of_edges) ,并将此对象传递给 G.add_edges_from

Examples

>>> G = nx.Graph()  # 或 DiGraph, MultiGraph, MultiDiGraph 等
>>> G.add_edges_from([(0, 1), (1, 2)])  # 使用边元组列表
>>> e = zip(range(0, 3), range(1, 4))
>>> G.add_edges_from(e)  # 添加路径图 0-1-2-3

将数据关联到边

>>> G.add_edges_from([(1, 2), (2, 3)], weight=3)
>>> G.add_edges_from([(3, 4), (1, 4)], label="WN2898")

如果使用迭代器修改同一个图,请评估该迭代器

>>> G = nx.MultiGraph([(1, 2), (2, 3), (3, 4)])
>>> # 通过向所有现有节点添加边来扩展图
>>> # 错误方式 - 会引发 RuntimeError
>>> # G.add_edges_from(((5, n) for n in G.nodes))
>>> # 正确方式 - 注意节点 5 不会有自环
>>> assigned_keys = G.add_edges_from(list((5, n) for n in G.nodes))