2013-06-11 8 views
5

में किनारों के माध्यम से पार्सिंग मैं उन किनारों को प्राप्त करने की कोशिश कर रहा हूं जिनके पास get_edge_attributes() फ़ंक्शन का उपयोग किये बिना ग्राफ से एक निश्चित विशेषता है। मुझे इसे करने का एक और अधिक लचीला तरीका चाहिए। मुश्किलनेटवर्कएक्स ग्राफ़

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)) 

उत्तर

6

आप ग्राफ किनारों के सब से अधिक पाश को 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} 
+0

धन्यवाद अरेरिक! – geolykos