Common Graph Operations¶
Many common graph operations map to simple operators in graphi
.
Unless parameters are needed, builtin operations usually suffice.
For example, the outdegree of a node is simply its number of outgoing edges, i.e.
out_degree = len(graph[node])
in a directed graph.
Since graphi
makes heavy use of data views (instead of copies), this has optimal performance.
Pythonic Graph Operations¶
Nodes of a graph¶
Graphs behave like a set
with regard to nodes.
Note that removing a node also invalidates all its edges and their values.

graph[a] = True

graph.add(a)

graph.discard(a)
Safely add or remove a node
a
fromgraph
.

del graph[a]
Remove a node
a
fromgraph
.

a in graph
Whether there is a node
a
ingraph
.

list(graph)

iter(graph)

for a in graph:
List/iterate/traverse all nodes in
graph
.

len(graph)
The number of nodes in the graph.
Edges and values of a graph¶
Graphs specialcase edges: an edge is a secondary key, being the value to nodes and the key to edge values.

list(graph[a])

iter(graph[a])

for b in graph[a]:
List/iterate/loop all nodes for which there is an edge from node
a
, i.e. its neighbours.
Pythonic Graph Types¶
By default, every graph is a weighted, directed graph  edges are oriented from start to end node and have one edge value. However, other graph types can be created with standard language features.