networkx.MultiGraph.nodes¶
- property MultiGraph.nodes¶
A NodeView of the Graph as G.nodes or G.nodes().
Can be used as
G.nodesfor data lookup and for set-like operations. Can also be used asG.nodes(data='color', default=None)to return a NodeDataView which reports specific node data but no set operations. It presents a dict-like interface as well withG.nodes.items()iterating over(node, nodedata)2-tuples andG.nodes[3]['foo']providing the value of thefooattribute for node3. In addition, a viewG.nodes.data('foo')provides a dict-like interface to thefooattribute of each node.G.nodes.data('foo', default=1)provides a default for nodes that do not have attributefoo.- Parameters
- datastring or bool, optional (default=False)
The node attribute returned in 2-tuple (n, ddict[data]). If True, return entire node attribute dict as (n, ddict). If False, return just the nodes n.
- defaultvalue, optional (default=None)
Value used for nodes that don’t have the requested attribute. Only relevant if data is not True or False.
- Returns
- NodeView
Allows set-like operations over the nodes as well as node attribute dict lookup and calling to get a NodeDataView. A NodeDataView iterates over
(n, data)and has no set operations. A NodeView iterates overnand includes set operations.When called, if data is False, an iterator over nodes. Otherwise an iterator of 2-tuples (node, attribute value) where the attribute is specified in
data. If data is True then the attribute becomes the entire data dictionary.
Notes
If your node data is not needed, it is simpler and equivalent to use the expression
for n in G, orlist(G).Examples
There are two simple ways of getting a list of all nodes in the graph:
>>> G = nx.path_graph(3) >>> list(G.nodes) [0, 1, 2] >>> list(G) [0, 1, 2]
To get the node data along with the nodes:
>>> 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')]
If some of your nodes have an attribute and the rest are assumed to have a default attribute value you can create a dictionary from node/attribute pairs using the
defaultkeyword argument to guarantee the value is never 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}