繁体   English   中英

将具有属性的节点添加到字典中的图形

[英]Add nodes with attributes to graph from a dictionary

所以我有一个字典,我想将键作为节点输入到图中。 然后,字典中键的值必须成为节点的属性。 这是我的代码。

dictionary = {1:'a', 2:'b', 3:'c', 4:'d'}
G.nx.DiGraph()
G.add_nodes_from(dictionary.keys(), attribute = dictionary.values())
G.nodes[1]
>> {'attribute': dict_values(['a', 'b', 'c', 'd'])}

这不是所需的输出。 我实际上只希望将'a'作为键1的属性。所需的输出是:

G.nodes[1]
>> {'attribute': 'a'}

所以问题在于分配我的属性。 但是我该怎么做呢?

我还没有找到直接作为networkx函数的答案。 但是,以下代码有效。

dictionary = {1:'a', 2:'b', 3:'c', 4:'d'}
G=nx.DiGraph()
G.add_nodes_from(dictionary.keys())
for key,n in G.nodes.items():
   n["attribute"]=dictionary[key]

然后,您可以看到每个属性。

G.nodes[1]
#result {'attribute': 'a'}

要将属性分配给各个节点,请使用G.add_edges_from(X) ,其中X是形式为(node, attribute_dict)的元组列表(或其他容器(node, attribute_dict) 因此,您需要为每个节点创建属性字典。 让我们为此使用列表理解。

G.add_nodes_from([(node, {'attribute': attr}) for (node, attr) in dictionary.items()])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM