# Python Program to Find Duplicate sets in list of sets

• Last Updated : 05 Apr, 2021

Given a list of sets, the task is to write a Python program to find duplicate sets.

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

Output : [frozenset({1, 4, 5, 6}), frozenset({1, 3, 4})]

Explanation : {1, 4, 5, 6} is similar to {6, 4, 1, 5} hence part of result.

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

Output : [frozenset({1, 3, 4})]

Explanation : {1, 3, 4} ({1, 3, 4, 3}) is similar to {1, 4, 3} hence part of result.

Method #1 : Using Counter() + count() + frozenset() + loop

In this, all the sets are hashed by converting them into frozenset() [ to get hashable type ] into frequency using Counter(). Then count() is used to get count of all the present sets from frequency counter created.

## Python3

 `# Python3 code to demonstrate working of``# Duplicate sets in list of sets``# Using Counter() + count() + frozenset() + loop``from` `collections ``import` `Counter`` ` `# initializing list``test_list ``=` `[{``4``, ``5``, ``6``, ``1``}, {``6``, ``4``, ``1``, ``5``}, {``1``, ``3``, ``4``, ``3``}, ``             ``{``1``, ``4``, ``3``}, {``7``, ``8``, ``9``}]``              ` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))`` ` `# getting frequency using Counter()``freqs ``=` `Counter(``frozenset``(sub) ``for` `sub ``in` `test_list)`` ` `res ``=` `[]``for` `key, val ``in` `freqs.items():``     ` `    ``# if frequency greater than 1, set is appended ``    ``# [duplicate]``    ``if` `val > ``1` `:``        ``res.append(key)`` ` `# printing result``print``(``"Duplicate sets list : "` `+` `str``(res))`

Output:

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

Duplicate sets list : [frozenset({1, 4, 5, 6}), frozenset({1, 3, 4})]

Method #2 : Using list comprehension + Counter()

In this, we perform similar task, only difference being list comprehension is used as one liner to extract duplicates based on frequency dictionary.

## Python3

 `# Python3 code to demonstrate working of``# Duplicate sets in list of sets``# Using list comprehension + Counter()``from` `collections ``import` `Counter`` ` `# initializing list``test_list ``=` `[{``4``, ``5``, ``6``, ``1``}, {``6``, ``4``, ``1``, ``5``}, {``1``, ``3``, ``4``, ``3``}, {``1``, ``4``, ``3``}, {``7``, ``8``, ``9``}]``              ` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))`` ` `# getting frequency using Counter()``freqs ``=` `Counter(``frozenset``(sub) ``for` `sub ``in` `test_list)`` ` `# list comprehension provides shorthand solution``res ``=` `[key ``for` `key, val ``in` `freqs.items() ``if` `val > ``1``]`` ` `# printing result``print``(``"Duplicate sets list : "` `+` `str``(res))`

Output:

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

Duplicate sets list : [frozenset({1, 4, 5, 6}), frozenset({1, 3, 4})]

My Personal Notes arrow_drop_up