我試圖在python中編寫以下代碼片段。將變量作爲參數傳遞給networkx.add_edge()屬性
g = networkx.Digraph()
g.add_edge(1,2,x = 2)
'x'這裏是一個變量。但是,networkx似乎將此作爲屬性的名稱。我需要傳遞x中的內容作爲屬性的名稱。我該怎麼做?
我試圖在python中編寫以下代碼片段。將變量作爲參數傳遞給networkx.add_edge()屬性
g = networkx.Digraph()
g.add_edge(1,2,x = 2)
'x'這裏是一個變量。但是,networkx似乎將此作爲屬性的名稱。我需要傳遞x中的內容作爲屬性的名稱。我該怎麼做?
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}
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})
非常感謝@DavidRobinson。現在解決了。 –
什麼*是* X裏面?你在前一行定義它? –
另外:'networkx'爲每個邊緣的屬性使用鍵值對。如果你想'x'成爲價值,你想成爲什麼樣的關鍵? –
x有一些其他節點的名稱;一些絃樂基本上。 –