11

我试图在不使用 get_edge_attributes() 函数的情况下从图中获取具有特定属性的边。我需要一种更灵活的方式来做到这一点。我可以获取节点属性,但由于我是 python 边缘的新手,似乎很难

G = nx.read_graphml("test.graphml")

for n in G:
  print "%s\t%s" %(n, G.node[n].get(attr))

for (s,d) in G:       # and here is my problem
  print "%s->%s\t%s" %(s, d, G.edge[s][d].get(attr))
4

1 回答 1

15

您可以使用 G.edges() 或 G.edges_iter() 方法循环遍历所有图形边缘。

In [1]: import networkx as nx

In [2]: G = nx.Graph()

In [3]: G.add_edge(1,2,weight=7)

In [4]: G.add_edge(2,3,weight=10)

In [5]: for u,v,a in G.edges(data=True):
    print u,v,a
   ...:     
1 2 {'weight': 7}
2 3 {'weight': 10}
于 2013-06-12T11:00:16.723 回答