nodes: 0, module; 1, function_definition; 2, function_name:difference_update; 3, parameters; 4, block; 5, identifier:self; 6, list_splat_pattern; 7, expression_statement; 8, for_statement; 9, identifier:others; 10, comment:r"""Remove all elements contained the others from this multiset.
  
          >>> ms = Multiset('aab')
          >>> ms.difference_update('abc')
          >>> sorted(ms)
          ['a']
  
          You can also use the ``-=`` operator for the same effect. However, the operator version
          will only accept a set as other operator, not any iterable, to avoid errors.
  
          >>> ms = Multiset('aabbbc')
          >>> ms -= Multiset('abd')
          >>> sorted(ms)
          ['a', 'b', 'b', 'c']
  
          For a variant of the operation which does not modify the multiset, but returns a new
          multiset instead see :meth:`difference`.
  
          Args:
              others: The other sets to remove from this multiset. Can also be any :class:`~typing.Iterable`\[~T]
                  or :class:`~typing.Mapping`\[~T, :class:`int`] which are then converted to :class:`Multiset`\[~T].
          """; 11, identifier:other; 12, call; 13, block; 14, identifier:map; 15, argument_list; 16, for_statement; 17, attribute; 18, identifier:others; 19, pattern_list; 20, call; 21, block; 22, identifier:self; 23, identifier:_as_multiset; 24, identifier:element; 25, identifier:multiplicity; 26, attribute; 27, argument_list; 28, expression_statement; 29, identifier:other; 30, identifier:items; 31, call; 32, attribute; 33, argument_list; 34, identifier:self; 35, identifier:discard; 36, identifier:element; 37, identifier:multiplicity
code: def difference_update(self, *others):
          r"""Remove all elements contained the others from this multiset.
  
          >>> ms = Multiset('aab')
          >>> ms.difference_update('abc')
          >>> sorted(ms)
          ['a']
  
          You can also use the ``-=`` operator for the same effect. However, the operator version
          will only accept a set as other operator, not any iterable, to avoid errors.
  
          >>> ms = Multiset('aabbbc')
          >>> ms -= Multiset('abd')
          >>> sorted(ms)
          ['a', 'b', 'b', 'c']
  
          For a variant of the operation which does not modify the multiset, but returns a new
          multiset instead see :meth:`difference`.
  
          Args:
              others: The other sets to remove from this multiset. Can also be any :class:`~typing.Iterable`\[~T]
                  or :class:`~typing.Mapping`\[~T, :class:`int`] which are then converted to :class:`Multiset`\[~T].
          """
          for other in map(self._as_multiset, others):
              for element, multiplicity in other.items():
                  self.discard(element, multiplicity)