我正在尝试编写一个通用函数,该函数创建一个图形,该图形需要一个节点和边的列表。对于每个节点,都有一组默认属性和一组可选属性。由于可选属性可以是任何内容,因此我考虑使用字典来存储它们。但是,似乎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)
我明白了
NodeDataView({'node1':{'k':'abc'}})
相比之下,
NodeDataView({'node1':{'ned':1, 'its':'abc'}})
我想知道是否有可能实现这个?
g.add_node('node1', attr_dict=optional_attrs)
应该可以完成任务。您应该阅读文档:https://networkx.github.io/documentation/stable/reference/generated/networkx.Graph.add_node.html?highlight=add_node#networkx.Graph.add_node - Simon Frommek
,传递给add_node
的参数名称仍将始终是字符串"k"
。 - Simon Fromme