1
一個關鍵的錯誤,我想在networkxget_edge_attribute返回networkx
import networkx as nx
G = nx.erdos_renyi_graph(4,1) # This creates a complete graph
nx.set_edge_attributes(G, 'sign', {(0, 1) : 1})
print nx.get_edge_attributes(G, 'sign')[(0, 1)]
它打印1
很簡單的東西。到現在爲止還挺好。但現在我的最後一行更改爲:
print nx.get_edge_attributes(G, 'sign')[(1, 0)]
我想,既然邊緣定向的,這不應該的問題和代碼應重新打印1
。然而,令我驚訝的是,我得到這個:
Traceback (most recent call last):
File "test.py", line 7, in <module>
print nx.get_edge_attributes(G, 'sign')[(1, 0)]
KeyError: (1, 0)
這讓我瘋狂。不應該把(1, 0)
當作(0, 1)
嗎?另外,如果情況並非如此,我如何讓networkx將它們視爲相同?另外,在我們談論邊緣的其他地方,我們是否總是需要爲每個邊緣指定兩次?
在此先感謝您的幫助。