【问题标题】:Reverse one edge in networkx graph在networkx图中反转一条边
【发布时间】:2014-10-06 02:27:21
【问题描述】:

我发现DiGraph.reverse() 可以反转有向图中所有边的方向,但是有没有办法只改变特定边的方向?

【问题讨论】:

    标签: python graph networkx


    【解决方案1】:

    当然可以手动完成,但 API 中没有任何内容。

    $ cat edges.py; echo; python edges.py 
    import networkx as nx
    G=nx.DiGraph()
    G.add_edge(1,2,{'weight':.5})
    G.add_edge(3,4,{'weight':1.0})
    attrs = G[1][2]
    G.remove_edge(1,2)
    G.add_edge(2,1,attrs)
    print G.edges(data=True)
    
    [(2, 1, {'weight': 0.5}), (3, 4, {'weight': 1.0})]
    $ 
    

    【讨论】:

    • 好的。您正在删除边缘并插入恢复的边缘。我想知道这种图形修改是否有 API 函数。
    • 我没有看到。大概在有向图中,这不被视为对边的修改,因为在另一个方向上可能已经存在边。我不确定 API 是否包含(甚至应该包含)这样的高级功能,尽管 reverse 函数的存在肯定是个笑话。
    • 确实...reverse 的存在可能意味着这也存在于单个边缘。
    • 反向的实现使它看起来不太可能:有向图的就地反向交换了前任和后继字典。
    猜你喜欢
    • 2021-01-23
    • 1970-01-01
    • 2023-04-04
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    • 2017-07-08
    • 1970-01-01
    相关资源
    最近更新 更多