當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。