def symmetric_difference(self, other, result_name=None, sort=None):
self._validate_sort_keyword(sort)<EOL>self._assert_can_do_setop(other)<EOL>other, result_name_update = self._convert_can_do_setop(other)<EOL>if result_name is None:<EOL><INDENT>result_name = result_name_update<EOL><DEDENT>this = self._get_unique_index()<EOL>other = other._get_unique_index()<EOL>indexer = this.get_indexer(other)<EOL>common_indexer = indexer.take((indexer != -<NUM_LIT:1>).nonzero()[<NUM_LIT:0>])<EOL>left_indexer = np.setdiff1d(np.arange(this.size), common_indexer,<EOL>assume_unique=True)<EOL>left_diff = this.values.take(left_indexer)<EOL>right_indexer = (indexer == -<NUM_LIT:1>).nonzero()[<NUM_LIT:0>]<EOL>right_diff = other.values.take(right_indexer)<EOL>the_diff = _concat._concat_compat([left_diff, right_diff])<EOL>if sort is None:<EOL><INDENT>try:<EOL><INDENT>the_diff = sorting.safe_sort(the_diff)<EOL><DEDENT>except TypeError:<EOL><INDENT>pass<EOL><DEDENT><DEDENT>attribs = self._get_attributes_dict()<EOL>attribs['<STR_LIT:name>'] = result_name<EOL>if '<STR_LIT>' in attribs:<EOL><INDENT>attribs['<STR_LIT>'] = None<EOL><DEDENT>return self._shallow_copy_with_infer(the_diff, **attribs)<EOL>
Compute the symmetric difference of two Index objects.

Parameters
----------
other : Index or array-like
result_name : str
sort : False or None, default None
    Whether to sort the resulting index. By default, the
    values are attempted to be sorted, but any TypeError from
    incomparable elements is caught by pandas.

    * None : Attempt to sort the result, but catch any TypeErrors
      from comparing incomparable elements.
    * False : Do not sort the result.

    .. versionadded:: 0.24.0

    .. versionchanged:: 0.24.1

       Changed the default value from ``True`` to ``None``
       (without change in behaviour).

Returns
-------
symmetric_difference : Index

Notes
-----
``symmetric_difference`` contains elements that appear in either
``idx1`` or ``idx2`` but not both. Equivalent to the Index created by
``idx1.difference(idx2) | idx2.difference(idx1)`` with duplicates
dropped.

Examples
--------
>>> idx1 = pd.Index([1, 2, 3, 4])
>>> idx2 = pd.Index([2, 3, 4, 5])
>>> idx1.symmetric_difference(idx2)
Int64Index([1, 5], dtype='int64')

You can also use the ``^`` operator:

>>> idx1 ^ idx2
Int64Index([1, 5], dtype='int64')