Graph.add_edges_from#
- Graph.add_edges_from(ebunch_to_add, **attr)[source]#
添加 ebunch_to_add 中的所有边。
- Parameters:
- ebunch_to_add边容器
容器中的每条边都将被添加到图中。边必须以 2 元组 (u, v) 或 3 元组 (u, v, d) 的形式给出,其中 d 是一个包含边数据的字典。
- attr关键字参数, 可选
可以使用关键字参数分配边数据(或标签或对象)。
See also
add_edge
添加单条边
add_weighted_edges_from
添加加权边的便捷方式
Notes
添加相同的边两次没有效果,但每次添加重复边时,任何边数据 都会更新。
在 ebunch 中指定的边属性优先于通过关键字参数指定的属性。
- 当从正在更改的图的迭代器中添加边时,可能会引发
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.Graph([(1, 2), (2, 3), (3, 4)]) >>> # 通过添加一个新节点来扩展图,并向所有现有节点添加边。 >>> # 错误的方式 - 会引发 RuntimeError >>> # G.add_edges_from(((5, n) for n in G.nodes)) >>> # 正确的方式 - 注意节点 5 不会有自环 >>> G.add_edges_from(list((5, n) for n in G.nodes))