Circuit Overview:


   The primary representation of quantum programs in Cirq is the Circuit class.
  
    A Circuit is a collection of Moments.

    A Moment is a collection of Operations that all act during the same abstract time slice.

    An Operation is some effect that operates on a specific subset of Qubits; the most common type of Operation is a GateOperation.

                                                             Circuit


Depth of  above circuit is 7. Width (Space) is 3.

The base unit of this circuit is qubit. In Cirq, qubits and other objects are identified by instances of subclasses of the cirq.Qid base class. Various subclasses of  Qid can be used for different purposes. For example, qubits are often arranged on the vertices of a square grid. In this case, cirq.GridQubit subclasses
cirq.Qid.

qubits = cirq.GridQubit.square(4)
print(qubits[0])
print(qubits)
print(qubits[15])

output:
q(0, 0)
[cirq.GridQubit(0, 0), cirq.GridQubit(0, 1), cirq.GridQubit(0, 2), cirq.GridQubit(0, 3), cirq.GridQubit(1, 0), cirq.GridQubit(1, 1), cirq.GridQubit(1, 2), cirq.GridQubit(1, 3), cirq.GridQubit(2, 0), cirq.GridQubit(2, 1), cirq.GridQubit(2, 2), cirq.GridQubit(2, 3), cirq.GridQubit(3, 0), cirq.GridQubit(3, 1), cirq.GridQubit(3, 2), cirq.GridQubit(3, 3)]
q(3, 3)

Create a single GridQubit at row = 2 and col = 4
import cirq
q = cirq.GridQubit(2, 4)
print(q)


Output:
q(2, 4)

Create multiple qubits in a 4 x 4 grid
import cirq
multiqubits = [cirq.GridQubit(row, col) for row in range(4) for col in range(4)]
print(multiqubits)


Output :
[cirq.GridQubit(0, 0), cirq.GridQubit(0, 1), cirq.GridQubit(0, 2), cirq.GridQubit(0, 3), cirq.GridQubit(1, 0), cirq.GridQubit(1, 1), cirq.GridQubit(1, 2), cirq.GridQubit(1, 3), cirq.GridQubit(2, 0), cirq.GridQubit(2, 1), cirq.GridQubit(2, 2), cirq.GridQubit(2, 3), cirq.GridQubit(3, 0), cirq.GridQubit(3, 1), cirq.GridQubit(3, 2), cirq.GridQubit(3, 3)]

Getting Neighbors
import cirq
q = cirq.GridQubit(2, 4)
print(q.neighbors())

Output:
{cirq.GridQubit(2, 5), cirq.GridQubit(2, 3), cirq.GridQubit(1, 4), cirq.GridQubit(3, 4)}

Note: .neighbors() return potential nighbors and it doesn't check if they exist in your device layout.