2014-10-31 41 views
2

我有一個關於如何將邊緣添加到包含列表作爲值的字典中的問題。 我想定義一個函數,將字典作爲參數,然後爲listof值中的每個鍵+對象添加邊。 我已經創建了空圖結構,並想知道是否有一種聰明的方式來添加整個字典。NetworkX:從列表中將邊緣添加到圖表中作爲值

高清build_network(字典):

G = nx.Graph() 

之後,我只想返回構成的曲線圖。

我知道這是一個新手問題,但任何幫助將得到感謝!

編輯1:該字典包含足球運動員作爲關鍵字以及他作爲價值玩的俱樂部列表。

編輯2:字典的字符串是unicode。一個例子就是{u'Drogba':'勒芒','u'Chelsea',u'Galatasaray'],u'Beckham:'曼聯',u'Real馬德里',u'Los洛杉磯銀河「]}

+0

‘含列爲值’是一個有點含糊。你想要的輸入和輸出的例子會有所幫助。 – DSM 2014-10-31 00:43:50

+1

..所以你的字典看起來像'{「a」:[「c0」,「c1」,「c2」],「b」:[「c2」,「c4」,「c6」]}'? (在這裏通過「示例」,我們傾向於指具體的東西,人們可以複製和粘貼以進行試驗。顯示作品比描述更好。) – DSM 2014-10-31 00:49:17

+0

對不起!我試圖提供一個例子。 – 2014-10-31 00:58:45

回答

5

Graph對象可以採取字典作爲初始化參數,所以我認爲它會做你想要漂亮直截了當的:

>>> d = {'Drogba': ['Le Mans', 'Chelsea', 'Galatasaray'], 'Beckham': ['Manchester United', 'Real Madrid', 'Los Angeles Galaxy']} 
>>> g = nx.Graph(d) 
>>> g.nodes() 
['Manchester United', 'Beckham', 'Real Madrid', 'Le Mans', 'Los Angeles Galaxy', 'Drogba', 'Galatasaray', 'Chelsea'] 
>>> g.edges("Beckham") 
[('Beckham', 'Real Madrid'), ('Beckham', 'Los Angeles Galaxy'), ('Beckham', 'Manchester United')] 
>>> g.neighbors("Drogba") 
['Galatasaray', 'Chelsea', 'Le Mans'] 
+0

我不知道我該如何監督這一點。感謝您的回答 - 耐心;) – 2014-10-31 01:11:25