使用python networkx时,是否可以向单个节点添加多个标签(即主标签和子标签)?
问题描述:
当使用python networkx是可以添加多个标签到单个节点(即主标签,然后在每个节点的子标签)?使用python networkx时,是否可以向单个节点添加多个标签(即主标签和子标签)?
答
如果你指的“标签”属性',那么您可以在做到这一点(至少)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'
交换节点名称(除非有什么我不知道)。
答
节点可以是任何可哈希的Python对象。如果需要,可以使用多个标签的元组。
甲哈希的对象是一个可以被用作在Python字典的键。这包括字符串,数字,字符串和数字元组等。
在许多平台上,可排序项目还包括诸如NetworkX Graphs等可变项,尽管应该小心哈希不会在可变项上更改。