Graph.nodes#

property Graph.nodes#

图形的节点视图,如g.nodes或g.nodes()。

可用作 G.nodes 用于数据查找和类似于集合的操作。也可用作 G.nodes(data='color', default=None) 返回一个报告特定节点数据但没有设置操作的节点数据视图。它还提供了一个类似dict的接口 G.nodes.items() 迭代 (node, nodedata) 2元组 G.nodes[3]['foo'] 提供 foo 节点的属性 3 . 此外,视图 G.nodes.data('foo')foo 每个节点的属性。 G.nodes.data('foo', default=1) 为没有属性的节点提供默认值 foo .

参数
data字符串或布尔值,可选(默认值=FALSE)

以2元组(n,ddict)形式返回的节点属性 [data] )。如果为True,则将整个节点属性dict返回为(n,ddict)。如果为False,则仅返回节点n。

default值,可选(默认值=无)

用于不具有请求的属性的节点的值。仅当数据不是True或False时才相关。

返回
NodeView

允许在节点上进行类似于集合的操作,以及节点属性dict查找和调用以获取节点数据视图。节点数据视图迭代 (n, data) 没有固定的操作。节点视图迭代 n 包括设置操作。

调用时,如果数据为假,则为节点上的迭代器。否则,在中指定属性的2元组(节点、属性值)的迭代器 data . 如果数据为真,则该属性将成为整个数据字典。

笔记

如果不需要节点数据,则使用表达式更简单且等效 for n in Glist(G) .

实例

获取图中所有节点的列表有两种简单方法:

>>> G = nx.path_graph(3)
>>> list(G.nodes)
[0, 1, 2]
>>> list(G)
[0, 1, 2]

要获取节点数据以及节点,请执行以下操作:

>>> G.add_node(1, time="5pm")
>>> G.nodes[0]["foo"] = "bar"
>>> list(G.nodes(data=True))
[(0, {'foo': 'bar'}), (1, {'time': '5pm'}), (2, {})]
>>> list(G.nodes.data())
[(0, {'foo': 'bar'}), (1, {'time': '5pm'}), (2, {})]
>>> list(G.nodes(data="foo"))
[(0, 'bar'), (1, None), (2, None)]
>>> list(G.nodes.data("foo"))
[(0, 'bar'), (1, None), (2, None)]
>>> list(G.nodes(data="time"))
[(0, None), (1, '5pm'), (2, None)]
>>> list(G.nodes.data("time"))
[(0, None), (1, '5pm'), (2, None)]
>>> list(G.nodes(data="time", default="Not Available"))
[(0, 'Not Available'), (1, '5pm'), (2, 'Not Available')]
>>> list(G.nodes.data("time", default="Not Available"))
[(0, 'Not Available'), (1, '5pm'), (2, 'Not Available')]

如果某些节点具有属性,而其余节点假定具有默认属性值,则可以使用 default 用于确保值从不为无的关键字参数::

>>> G = nx.Graph()
>>> G.add_node(0)
>>> G.add_node(1, weight=2)
>>> G.add_node(2, weight=3)
>>> dict(G.nodes(data="weight", default=1))
{0: 1, 1: 2, 2: 3}