使用python networkx时,是否可以将多个标签添加到单个节点(即主标签,然后是子标签)?

时间:2017-06-14 19:18:01

标签: python networkx

当使用python networkx时,可以向单个节点添加多个标签(即主标签,然后是每个节点中的子标签)?

2 个答案:

答案 0 :(得分:1)

如果你的意思是“标签”的'属性',那么你可以(至少)2种方式做到这一点

例如:

import networkx as nx
G = nx.Graph()
G.add_node('Bob', {'age':45, 'gender':'male'})
G.node['Bob']['age']
> 45
G.add_node('Sara', age=40, gender = 'female')
G.node['Sara']['age']
> 40
G.node['Sara']['gender']
> 'female'

请注意,在'Sara'的赋值中,我不需要将属性名称设置为字符串,但是当我访问它们时,我做了。

另一方面,如果您想在引用节点时想要为节点指定两个不同的名称,那么这是另一回事。例如,假设您要使用G.neighbors(node_name)来访问给定节点的邻居,您将无法将'Robert''Bob'交替用于节点名称(除非我有什么东西)我没有意识到。)

答案 1 :(得分:0)

节点可以是任何可散列的Python对象。如果需要,可以使用多个标签的元组。

来自文档:https://networkx.github.io/documentation/networkx-1.10/reference/generated/networkx.Graph.add_node.html#networkx.Graph.add_node

可散列对象是可以用作Python字典中的键的对象。这包括字符串,数字,字符串和数字的元组等。

在许多平台上,hashable项目还包括诸如NetworkX Graphs之类的可变项,但是应该注意哈希不会在mutables上发生变化。