# Python – Symmetric Difference of Multiple sets

• Last Updated : 21 Jul, 2021

Symmetric Differences among groups of sets are elements that belong to any one of the sets but are not present in any other set. Given a list of sets and the task is to write a Python program to get the symmetric difference of the same.

Input : test_list = [{5, 3, 2, 6, 1}, {7, 5, 3, 8, 2}, {9, 3}, {0, 3, 6, 7}]

Output : {8, 1, 9, 0}

Explanation : 8, 1, 9, 0 occur just 1 time over whole container.

Input : test_list = [{5, 3, 2, 6, 1}, {7, 5, 3, 8, 2}, {9, 3}]

Output : {8, 1, 9}

Explanation : 8, 1, 9 occur just 1 time over whole container.

Method #1: Using Counter() + chain.from_iterable()

This method is used to check for all elements that have 1 as frequency overall sets by flattening. Counter() extracts frequencies and then all elements with count 1 can be extracted.

## Python3

 `# Python3 code to demonstrate working of``# Symmetric Difference of Multiple sets``# Using Counter() + chain.from_iterable() ``from` `collections ``import` `Counter``from` `itertools ``import` `chain`` ` `# initializing list``test_list ``=` `[{``5``, ``3``, ``2``, ``6``, ``1``},``             ``{``7``, ``5``, ``3``, ``8``, ``2``}, ``             ``{``9``, ``3``},``             ``{``0``, ``3``, ``6``, ``7``}]``              ` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))`` ` `# getting frequencies using Counter()``# from_iterable() flattens the list ``freq ``=` `Counter(chain.from_iterable(test_list))`` ` `# getting frequency count 1 ``res ``=` `{idx ``for` `idx ``in` `freq ``if` `freq[idx] ``=``=` `1``}`` ` `# printing result``print``(``"Symmetric difference of multiple list : "` `+` `str``(res))`

Output:

The original list is : [{1, 2, 3, 5, 6}, {2, 3, 5, 7, 8}, {9, 3}, {0, 3, 6, 7}]

Symmetric difference of multiple list : {8, 1, 9, 0}

Method #2 : Using Counter() + chain.from_iterable() + items()

Similar to above method, only difference being its performed in single step by extracting keys and values using items().

## Python3

 `# Python3 code to demonstrate working of``# Symmetric Difference of Multiple sets``# Using Counter() + chain.from_iterable() + items()``from` `collections ``import` `Counter``from` `itertools ``import` `chain`` ` `# initializing list``test_list ``=` `[{``5``, ``3``, ``2``, ``6``, ``1``},``             ``{``7``, ``5``, ``3``, ``8``, ``2``}, ``             ``{``9``, ``3``}, {``0``, ``3``, ``6``, ``7``}]``              ` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))`` ` `# clubbing operations using items() to get items ``res ``=` `{key ``for` `key, val ``in` `Counter(chain.``                                   ``from_iterable(test_list)).``       ``items() ``if` `val ``=``=` `1``}`` ` `# printing result``print``(``"Symmetric difference of multiple list : "` `+` `str``(res))`

Output:

The original list is : [{1, 2, 3, 5, 6}, {2, 3, 5, 7, 8}, {9, 3}, {0, 3, 6, 7}]

Symmetric difference of multiple list : {8, 1, 9, 0}

My Personal Notes arrow_drop_up