DiGraph.to_undirected#
- DiGraph.to_undirected(reciprocal=False, as_view=False)[source]#
返回有向图的无向表示。
- Parameters:
- reciprocalbool (可选)
如果为True,仅保留在原始有向图中双向出现的边。
- as_viewbool (可选, 默认=False)
如果为True,返回原始有向图的无向视图。
- Returns:
- GGraph
一个具有相同名称和节点的无向图, 如果边 (u, v, data) 或 (v, u, data) 存在于有向图中,则包含边 (u, v, data)。 如果两条边都存在于有向图中且它们的边数据不同,则仅创建一条边, 并任意选择使用哪条边的数据。如果需要,您必须手动检查和纠正这一点。
See also
Notes
如果在图中存在双向边 (u, v) 和 (v, u),新无向边的属性将是 有向边属性的组合。边数据按照边被发现的顺序更新。 为了更自定义地控制边属性,请使用 add_edge()。
这将返回边、节点和图属性的“深拷贝”, 试图完全复制所有数据和引用。
这与类似的 G=DiGraph(D) 形成对比,后者返回数据的浅拷贝。
有关浅拷贝和深拷贝的更多信息,请参阅 Python 的 copy 模块, https://docs.python.org/3/library/copy.html。
警告:如果您已经对 DiGraph 进行了子类化以在数据结构中使用类似字典的对象, 这些更改不会通过此方法转移到由该方法创建的 Graph 中。
Examples
>>> G = nx.path_graph(2) # 或 MultiGraph 等 >>> H = G.to_directed() >>> list(H.edges) [(0, 1), (1, 0)] >>> G2 = H.to_undirected() >>> list(G2.edges) [(0, 1)]