所以我有一本字典,我希望将键作为节点输入到图形中。然后是字典中键的值,它们必须成为节点的属性。这是我现在的代码。
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'}
所以问题在于分配我的属性。但是我怎么能这样做呢?
答案 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)