code: def setall(self, key, values):
          
          key = self._conform_key(key)
          values = [self._conform_value(x) for x in values]
          ids = self._key_ids[key][:]
          while ids and values:
              id    = ids.pop(0)
              value = values.pop(0)
              self._pairs[id] = (key, value)
          if ids:
              self._key_ids[key] = self._key_ids[key][:-len(ids)]
              self._remove_pairs(ids)
          for value in values:
              self._key_ids[key].append(len(self._pairs))
              self._pairs.append((key, value))
docs: Set more than one value for a given key.
          
          Replaces all the existing values for the given key with new values,
          removes extra values that are already set if we don't suply enough,
          and appends values to the end if there are not enough existing spots.
          
          >>> m = MutableMultiMap(a=1, b=2, c=3)
          >>> m.sort()
          >>> m.keys()
          ['a', 'b', 'c']
          >>> m.append(('b', 4))
          >>> m.setall('b', [5, 6, 7])
          >>> m.allitems()
          [('a', 1), ('b', 5), ('c', 3), ('b', 6), ('b', 7)]