twf*_*wfx 4 python networkx python-2.7
我正在尝试编写一个通用函数,它创建一个采用节点和边列表的图形。对于每个节点,都有一组默认属性和一组可选属性。由于可选属性可以是任何东西,我想使用字典来存储它们。但是,看起来add_node()似乎不接受变量作为关键字。鉴于以下代码片段,
import networkx as nx
optional_attrs = {'ned':1, 'its':'abc'}
g = nx.Graph()
g.add_node('node1')
for k, v in optional_attrs.iteritems():
g.add_node('node1', k=v)
print g.node(data=True)
Run Code Online (Sandbox Code Playgroud)
我明白了
NodeDataView({'node1':{'k':'abc'}})
Run Code Online (Sandbox Code Playgroud)
代替,
NodeDataView({'node1':{'ned':1, 'its':'abc'}})
Run Code Online (Sandbox Code Playgroud)
我想知道有可能实现这一目标吗?
小智 8
一般来说,在 python 中,如果你想使用 adict为函数提供关键字参数,你可以在 dict 前面加上**.
g.add_node('node1', **optional_attrs)
Run Code Online (Sandbox Code Playgroud)
添加节点后还可以添加/更改节点属性:
g.add_node('node1')
g.nodes['node1'].update(optional_attrs)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9537 次 |
| 最近记录: |