DiGraph.to_undirected#

DiGraph.to_undirected(reciprocal=False, as_view=False)[源代码]#

返回有向图的无向表示。

参数
reciprocal布尔值(可选)

如果为True Only,则保留原始有向图中出现在两个方向上的边。

as_view布尔值(可选,默认值=FALSE)

如果为True,则返回原始有向图的无向视图。

返回
G

如果(u,v,data)或(v,u,data)在有向图中,则具有相同名称和节点且有边(u,v,data)的无向图。如果有向图中的两条边都存在,并且它们的边数据不同,则只创建一条边,并可任意选择使用哪条边数据。如果需要,您必须手动检查并更正此问题。

笔记

如果图中同时存在两个方向的边(u,v)和(v,u),则新的无向边的属性将是有向边属性的组合。边缘数据按遇到边缘的(任意)顺序更新。要对边缘属性进行更自定义的控制,请使用add_edge()。

这将返回边缘、节点和图形属性的“deepcopy”,这些属性试图完全复制所有数据和引用。

这与返回数据浅拷贝的类似g=digraph(d)形成了对比。

有关浅拷贝和深拷贝的更多信息,请参见Python复制模块,https://docs.python.org/3/library/copy.html

警告:如果您有子类有向图在数据结构中使用类似dict的对象,则这些更改不会传输到该方法创建的图中。

实例

>>> G = nx.path_graph(2)  # or MultiGraph, etc
>>> H = G.to_directed()
>>> list(H.edges)
[(0, 1), (1, 0)]
>>> G2 = H.to_undirected()
>>> list(G2.edges)
[(0, 1)]