当使用python networkx时,可以向单个节点添加多个标签(即主标签,然后是每个节点中的子标签)?
答案 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对象。如果需要,可以使用多个标签的元组。
可散列对象是可以用作Python字典中的键的对象。这包括字符串,数字,字符串和数字的元组等。
在许多平台上,hashable项目还包括诸如NetworkX Graphs之类的可变项,但是应该注意哈希不会在mutables上发生变化。