在 networkx 中找到满足特定条件的边

finding edges in networkx that meet a certain criteria

我有一个 networkx digraph 节点上有属性,我想找到特定节点属性不同的所有边。有没有办法自动执行此操作,还是我必须使用 edge_iter(data=True) 进行迭代并自己找到它们?

这个没有内置函数,但它非常简单:

import networkx as nx

G = nx.Graph()
G.add_node(1,color='red')
G.add_node(2,color='red')
G.add_node(3,color='blue')
G.add_node(4,color='blue')

G.add_edges_from([(1,2),(1,3),(3,4)])

for (u,v) in G.edges_iter():
    if G.node[u]['color'] != G.node[v]['color']:
        print u,v