code: def pop(self, key, default=_NotGiven):
          
          if key in self:
              self._list_remove(key)
              return self._pop(key)
          else:
              if default is _NotGiven:
                  raise KeyError(key)
              else:
                  return default
docs: If *key* is in the dictionary, remove it and return its value,
          else return *default*. If *default* is not given and *key* is not in
          the dictionary, a KeyError is raised.