code: def popvalue(self, k, d=None):
          
          if k not in self._col_dict:
              return d
          value = self._col_dict.pop(k)
          self._col_list.remove(value)
          return value
docs: D.popvalue(k[,d]) -> v, remove specified key and return the corresponding value.
          If key is not found, d is returned if given, otherwise KeyError is raised