2012-09-12 105 views
3

我試圖在python中編寫以下代碼片段。將變量作爲參數傳遞給networkx.add_edge()屬性

g = networkx.Digraph() 
g.add_edge(1,2,x = 2) 

'x'這裏是一個變量。但是,networkx似乎將此作爲屬性的名稱。我需要傳遞x中的內容作爲屬性的名稱。我該怎麼做?

+0

什麼*是* X裏面?你在前一行定義它? –

+0

另外:'networkx'爲每個邊緣的屬性使用鍵值對。如果你想'x'成爲價值,你想成爲什麼樣的關鍵? –

+0

x有一些其他節點的名稱;一些絃樂基本上。 –

回答

2

add_edge花費屬性的dict。你只需把屬性/值對在dict

g.add_edge(1, 2, {x:2}) 
# or more explicitly 
g.add_edge(1, 2, attr_dict={x:2}) 

例子:

In [25]: g = networkx.DiGraph() 

In [26]: x = 'some string' 

In [27]: g.add_edge(1, 2, {x:2}) 

In [28]: g[1][2] 
Out[28]: {'some string': 2} 
2
g = networkx.Digraph() 
g.add_edge(1, 2, **{x: 2}) 

請參閱how to use *args and **kwargs in Python。另外,networkx也可以讓你直接給它一個字典:

g.add_edge(1, 2, {x: 2}) 
+0

非常感謝@DavidRobinson。現在解決了。 –

相關問題