【问题标题】:How to iterate and delete specific edges in networkx directed graph如何在networkx有向图中迭代和删除特定边
【发布时间】:2018-01-04 12:00:44
【问题描述】:

我在networkx中有一个正边和负边​​的图表。我想找到所有的负面边缘并将它们反转。我编写了下面的程序来查找和删除负边缘,但出现迭代错误。代码如下:

for edge in G.edges():
    sign = G.get_edge_data(edge[0], edge[1])['sign']
    if sign == -1:
       G.remove_edge(edge[0], edge[1])
       G.add_edge(edge[1], edge[0])

如何遍历所有边并反转所有负边?

【问题讨论】:

    标签: python python-3.x graph networkx


    【解决方案1】:

    改变迭代的元素迭代是邪恶的;o)

    thingsToChange = []
    for edge in G.edges():
        sign = G.get_edge_data(edge[0], edge[1])['sign']
        if sign == -1:
           thingsToChange.append(edge)
    

    以后再改就好了:

    for things in thingsToChange:
        G.remove_edge(edge[0], edge[1])
        G.add_edge(edge[1], edge[0])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-27
      • 1970-01-01
      • 2023-02-25
      • 1970-01-01
      • 1970-01-01
      • 2022-11-12
      • 2010-12-08
      • 1970-01-01
      相关资源
      最近更新 更多