class_docstr: FIFO queue with fast indexing
  
  Operations getitem, setitem, append, popleft, and len
  are amortized O(1)-time, if this data structure is used ephemerally.
code: def popleft(self):
      if not self._queue_front:
          if not self._queue_back:
              raise IndexError("pop from empty RandomAccessQueue")
  
          self._queue_front = self._queue_back
          self._queue_back = []
          self._queue_front.reverse()
  
      return self._queue_front.pop()
  
file_path: pfrl/pfrl/collections/random_access_queue.py
imports: import itertools
  from pfrl.utils.random import sample_n_k
label_desc: Use image node_id 10 for calling the RandomAccessQueue obj's underlying member method code with example usage: obj.popleft() and returns: self