当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NetworkX Graph.nodes用法及代码示例


本文简要介绍 networkx.Graph.nodes 的用法。

用法:

property Graph.nodes

图表的 NodeView 为 G.nodes 或 G.nodes()。

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

参数

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

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

default值,可选(默认=无)

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

返回

NodeView

允许对节点进行 set-like 操作以及节点属性字典查找和调用以获取 NodeDataView。 NodeDataView 迭代 (n, data) 并且没有集合操作。 NodeView 迭代 n 并包含集合操作。

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

注意

如果不需要您的节点数据,则使用表达式 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 关键字参数从节点/属性对创建字典,以确保该值永远不会为 None:

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

相关用法


注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.Graph.nodes。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。