code: def symmetric_difference(self, other):
          r
          other = self._as_multiset(other)
          result = self.__class__()
          _total = 0
          _elements = result._elements
          self_elements = self._elements
          other_elements = other._elements
          dist_elements = set(self_elements.keys()) | set(other_elements.keys())
          for element in dist_elements:
              multiplicity = self_elements.get(element, 0)
              other_multiplicity = other_elements.get(element, 0)
              new_multiplicity = (multiplicity - other_multiplicity
                                  if multiplicity > other_multiplicity else other_multiplicity - multiplicity)
              _total += new_multiplicity
              if new_multiplicity > 0:
                  _elements[element] = new_multiplicity
          result._total = _total
          return result