2009-09-24 174 views
0

使用Python的Networkx庫,我創建了一個無向圖來表示不同人之間的關係網絡。我的代碼片段如下:Networkx節點遍歷

import networkx as nx 
def creategraph(filepath): 
    G=nx.Graph() 
    #All the various nodes and edges are added in this stretch of code. 
    return G 

據我所知,每個節點基本上是一個字典。這給我的問題是我想要執行一種不同的隨機遊動算法。現在,在您跳過我並告訴我使用Networkx庫的標準功能之前,我想指出這是一種自定義算法。假設我運行了creategraph函數,並且G對象被返回並存儲在另一個對象中(我們稱它爲X)。我想從一個叫做'Bob'的節點開始。 Bob連接到Alice和Joe。現在,我想重新指定Y隨機指向Alice或Bob(使用我正在處理的數據,給定節點可能會有數百個邊留下)。我如何去做這件事?此外,我該如何處理Unicode的條目在給定節點的字典(比如如何愛麗絲和喬在下面列出?)

X = creategraph("filename") 
Y=X['Bob'] 
print Y 
>> {u'Alice': {}, u'Joe': {}} 

回答

4

random模塊中的choice功能可能與選擇過程中提供幫助。你並不需要擔心unicode和string之間的區別,除非你想把它們寫出來,因爲有時unicode字符不能轉換成Python默認的ASCII字符集。

你會使用random.choice的辦法是沿着線的東西:

Y = Y[random.choice(Y.keys())] 
+0

謝謝,本諾。你的回答對解決我的問題非常有幫助。 – GobiasKoffi 2009-09-24 03:50:41