cirq.CircuitDag.succ

CircuitDag.succ

Graph adjacency object holding the successors of each node.

This object is a read-only dict-like structure with node keys
and neighbor-dict values. The neighbor-dict is keyed by neighbor
to the edge-data-dict. So G.succ[3][2]['color'] = 'blue' sets
the color of the edge (3, 2) to "blue".
Iterating over G.succ behaves like a dict. Useful idioms include
for nbr, datadict in G.succ[n].items():. A data-view not provided
by dicts also exists: for nbr, foovalue in G.succ[node].data('foo'):
and a default can be set via a default argument to the data method.
The neighbor information is also provided by subscripting the graph.
So for nbr, foovalue in G[node].data('foo', default=1): works.

For directed graphs, G.adj is identical to G.succ.