L.pop([index]) -> item -- remove and return item at index (default last).
        Raises IndexError if list is empty or index is out of range.

def pop(self, index=None):
        """
        L.pop([index]) -> item -- remove and return item at index (default last).
        Raises IndexError if list is empty or index is out of range.
        """
        if index is None:
            index = len(self._col_list) - 1

        key = self._get_object_key(self._col_list[index])
        del self._col_dict[key]

        return self._col_list.pop(index)