繁体   English   中英

如何在Networkx有向图中迭代和删除特定边

[英]How to iterate and delete specific edges in networkx directed graph

我在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])

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

在迭代更改迭代的元素是有害的; 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])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM