使用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对象。如果需要,可以使用多个标签的元组。

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

甲哈希的对象是一个可以被用作在Python字典的键。这包括字符串,数字,字符串和数字元组等。

在许多平台上,可排序项目还包括诸如NetworkX Graphs等可变项,尽管应该小心哈希不会在可变项上更改。