将变量作为参数传递给networkx.add_edge()属性

时间:2012-09-12 07:35:43

标签: python networkx

我正在尝试在python中编写以下代码。

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

这里的'x'是一个变量。但是networkx似乎把它作为属性的名称。我需要传递x内部的内容作为属性的名称。我该怎么做?

2 个答案:

答案 0 :(得分: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})

答案 1 :(得分: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}