【问题标题】:fix an ordering of the edges in an undirected networkx graph修复无向 networkx 图中边的排序
【发布时间】:2016-12-07 23:07:25
【问题描述】:

在无向 NetworkX 图中,边表示为 Python 元组。他们的顺序取决于您要求他们的方式。这是我所指的一个小例子:

import networkx as nx
g = nx.complete_bipartite_graph(2,2)
print(g.edges())
print(g.edges(2))

输出是

[(0, 2), (0, 3), (1, 2), (1, 3)]
[(2, 0), (2, 1)]

有没有办法(不涉及手动排序)来避免对边有不同的表示?

【问题讨论】:

    标签: python networkx


    【解决方案1】:

    我不确定您想要什么,因为在标题中您要求有序边,但在您的示例中,您要求边中的有序节点。在我的示例中,我展示了两者的排序。请注意,我使用列表推导来创建新的边列表——原始的边列表 (some_edges) 没有改变。

    首先如何对边列表中的单个节点元组进行排序。也就是说,边的顺序相同,但其中的节点是排序的。

    import networkx as nx
    g = nx.Graph()
    g.add_edges_from([
        (5, 2),
        (2, 1),
        (3, 2),
        (4, 2)
    ])
    some_edges = g.edges(2)
    print("Not sorted:  ", some_edges)
    
    print("SORTED")
    # sort nodes in edges
    some_edges_1 = [tuple(sorted(edge)) for edge in some_edges]
    print("Sorted nodes:", some_edges_1)
    

    现在如何对边列表中的边进行排序。

    # sort edges in list of edges
    some_edges_2 = sorted(some_edges_1)
    print("Sorted edges:", some_edges_2)
    

    上面两个代码块的输出:

    Not sorted:   [(2, 1), (2, 3), (2, 4), (2, 5)]
    SORTED
    Sorted nodes: [(1, 2), (2, 3), (2, 4), (2, 5)]
    Sorted edges: [(1, 2), (2, 3), (2, 4), (2, 5)]
    

    这里还有一个反向排序的示例,您可以实际看到排序单个边和排序边列表之间的区别。

    print("Not sorted:  ", some_edges)
    print("SORTED REVERSE")
    # sort nodes in edges
    some_edges_1 = [tuple(sorted(edge, reverse=True)) for edge in some_edges]
    print("Sorted nodes:", some_edges_1)
    # sort edges in list of edges
    some_edges_2 = sorted(some_edges_1, reverse=True)
    print("Sorted edges:", some_edges_2)
    

    输出:

    Not sorted:   [(2, 1), (2, 3), (2, 4), (2, 5)]
    SORTED REVERSE
    Sorted nodes: [(2, 1), (3, 2), (4, 2), (5, 2)]
    Sorted edges: [(5, 2), (4, 2), (3, 2), (2, 1)]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-01
      • 1970-01-01
      • 2017-06-28
      • 2019-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多