标签: python graph networkx
我在NetworkX中有一个图,大致是这样的:
a---b---c---d | e---f
我想简化它,删除只有2条边的中间节点。
a---b---d | f
如何在NetworkX中完成此操作?我只看到删除节点方法或收缩边。但这与节点有关。
答案 0 :(得分:2)
可以执行以下操作:
for node in list(G.nodes()): if G.degree(node) == 2: edges = list(G.edges(node)) G.add_edge(edges[0][1], edges[1][1]) G.remove_node(node)
答案 1 :(得分:0)
@ zohar.kom的较干净版本将使用子图方法:
this->