nodes: 0, module; 1, function_definition; 2, function_name:symmetric_difference_update; 3, parameters; 4, block; 5, identifier:self; 6, identifier:other; 7, expression_statement; 8, expression_statement; 9, expression_statement; 10, comment:# add items present in other; 11, expression_statement; 12, comment:"""Update the set with the symmetric difference of itself and `other`.
  
          >>> from ngram import NGram
          >>> n = NGram(['spam', 'eggs'])
          >>> other = set(['spam', 'ham'])
          >>> n.symmetric_difference_update(other)
          >>> sorted(list(n))
          ['eggs', 'ham']
          """; 13, assignment; 14, call; 15, call; 16, identifier:intersection; 17, call; 18, attribute; 19, argument_list; 20, attribute; 21, argument_list; 22, attribute; 23, argument_list; 24, identifier:self; 25, identifier:update; 26, identifier:other; 27, identifier:self; 28, identifier:difference_update; 29, identifier:intersection; 30, call; 31, identifier:intersection; 32, identifier:other; 33, identifier:super; 34, argument_list; 35, identifier:NGram; 36, identifier:self
code: def symmetric_difference_update(self, other):
          """Update the set with the symmetric difference of itself and `other`.
  
          >>> from ngram import NGram
          >>> n = NGram(['spam', 'eggs'])
          >>> other = set(['spam', 'ham'])
          >>> n.symmetric_difference_update(other)
          >>> sorted(list(n))
          ['eggs', 'ham']
          """
          intersection = super(NGram, self).intersection(other)
          self.update(other)  # add items present in other
          self.difference_update(intersection)