如何从三个节点中删除循环? [网络x]

How to remove loops from three nodes? [networkx]

我有一个有数百条边的图,我想像这样删除循环:

(1, 2)
(1, 3)
(2, 3)

我试过:

G.remove_edges_from(nx.selfloop_edges(G)) 

不过好像不行。有什么建议吗?

自环是节点到自身的边。例如,(1,1)(2,2) 是自循环。您的示例是一个简单的循环,即没有节点出现两次的闭合路径。您可以使用 simple_cycle or find_cycle。例如,您可以迭代地使用 find cycle:

import networkx as nx

G = nx.karate_club_graph()
print(nx.find_cycle(G, orientation="ignore"))
# [(0, 1, 'forward'), (1, 2, 'forward'), (2, 0, 'forward')]