从字典中添加具有属性的节点

时间:2017-11-29 13:16:53

标签: python python-3.x dictionary networkx

所以我有一本字典,我希望将键作为节点输入到图形中。然后是字典中键的值,它们必须成为节点的属性。这是我现在的代码。

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'}

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

2 个答案:

答案 0 :(得分:0)

我还没有找到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'}

答案 1 :(得分:0)

要将属性分配给各个节点,请使用flatMapValues((textLine: String) => textLine.toLowerCase.split("\\W+").toIterable.asJava),其中G.add_edges_from(X)X形式的元组的列表(或其他容器)。因此,您需要为每个节点创建属性字典。让我们使用列表理解。

(node, attribute_dict)