set_node_attributes#
- set_node_attributes(G, values, name=None)[源代码]#
根据给定的值或字典设置节点属性。
警告
参数
values
和name
的调用顺序在 v1.x 和 v2.x 之间发生了改变。- 参数:
- GNetworkX 图
- values标量值,类似字典
节点属性应设置的值。如果
values
不是字典,则将其视为一个单独的属性值,并应用于G
中的每个节点。这意味着如果你提供一个可变对象(如列表),对该对象的更新将反映在每个节点的节点属性中。属性名称将是name
。如果
values
是字典或字典的字典,它应该以节点为键,对应一个属性值或一个包含用于更新节点属性的属性键/值对的字典。- name字符串(可选,默认为 None)
如果 values 是标量,则设置的节点属性的名称。
示例
计算图节点的某些属性后,你可能希望分配一个节点属性来存储每个节点的该属性值
>>> G = nx.path_graph(3) >>> bb = nx.betweenness_centrality(G) >>> isinstance(bb, dict) True >>> nx.set_node_attributes(G, bb, "betweenness") >>> G.nodes[1]["betweenness"] 1.0
如果你提供一个列表作为第二个参数,对该列表的更新将反映在每个节点的节点属性中
>>> G = nx.path_graph(3) >>> labels = [] >>> nx.set_node_attributes(G, labels, "labels") >>> labels.append("foo") >>> G.nodes[0]["labels"] ['foo'] >>> G.nodes[1]["labels"] ['foo'] >>> G.nodes[2]["labels"] ['foo']
如果你提供一个字典的字典作为第二个参数,外部字典假定以节点为键,对应一个包含该节点属性的内部字典
>>> G = nx.path_graph(3) >>> attrs = {0: {"attr1": 20, "attr2": "nothing"}, 1: {"attr2": 3}} >>> nx.set_node_attributes(G, attrs) >>> G.nodes[0]["attr1"] 20 >>> G.nodes[0]["attr2"] 'nothing' >>> G.nodes[1]["attr2"] 3 >>> G.nodes[2] {}
注意,如果字典包含不在
G
中的节点,则这些值会被默默忽略>>> G = nx.Graph() >>> G.add_node(0) >>> nx.set_node_attributes(G, {0: "red", 1: "blue"}, name="color") >>> G.nodes[0]["color"] 'red' >>> 1 in G.nodes False