networkx.classes.function.set_node_attributes

set_node_attributes(G, values, name=None)[源代码]

从给定值或值字典设置节点属性。

警告

参数的调用顺序 valuesname 在v1.x和v2.x之间切换。

参数:
  • GNETWorkX图

  • 价值观scalar value, dict-like )--节点属性应该设置为什么。如果 values 不是字典,则将其视为单个属性值,然后将其应用于中的每个节点 G . 这意味着,如果提供可变对象(如列表),对该对象的更新将反映在每个节点的节点属性中。属性名将为 name .

    如果 values 是dict或dict的dict,它应该由节点键控为属性值或用于更新节点属性的属性键/值对的dict。

  • namestring (optional, default=None) )--如果值是标量,则要设置的节点属性的名称。

实际案例

在计算图形节点的某些属性之后,您可能需要分配一个节点属性来存储每个节点的该属性的值:

>>> 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

如果将列表作为第二个参数提供,则对列表的更新将反映在每个节点的node属性中::

>>> 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]
{}