Python Program to Find Most common elements set

• Last Updated : 02 Feb, 2021

Given a List of sets, the task is to write a Python program tocompare elements with argument set, and return one with maximum matching elements.

Examples:

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

Output : {9, 3, 5, 7}

Explanation : Resultant set has maximum matching elements.

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

Output : {2, 3, 4, 5}

Explanation : Resultant set has maximum matching elements.

Method 1: Using loop + set.intersection()

In this, we perform task of getting all the common elements with argument set using intersection(), and get its length using len(), and maximum length and set is compared and updated during iteration.

Python3

 # Python3 code to demonstrate working of # Most common elements set # Using loop + intersection()    # initializing list test_list = [{4, 3, 5, 2}, {8, 4, 7, 2},              {1, 2, 3, 4}, {9, 5, 3, 7}]    # printing original list print("The original list is : " + str(test_list))    # initializing arg_set arg_set = {9, 6, 5, 3}    res = set() max_len = 0    for sub in test_list:            # updating max value on occurrence     if len(sub.intersection(arg_set)) > max_len:         max_len = len(sub.intersection(arg_set))         res = sub    # printing result print("Max Set intersection : " + str(res))

Output:

The original list is : [{2, 3, 4, 5}, {8, 2, 4, 7}, {1, 2, 3, 4}, {9, 3, 5, 7}]
Max Set intersection : {9, 3, 5, 7}

Method 2 : Using max() + list comprehension + intersection()

In this, initial step is to check for the lengths of all intersected set results and get maximum using max(). Next, task of getting set which matches required length is extracted.

Python3

 # Python3 code to demonstrate working of # Most common elements set # Using loop + intersection()    # initializing list test_list = [{4, 3, 5, 2}, {8, 4, 7, 2},              {1, 2, 3, 4}, {9, 5, 3, 7}]    # printing original list print("The original list is : " + str(test_list))    # initializing arg_set arg_set = {9, 6, 5, 3}    # getting maximum length  max_len = max(len(sub.intersection(arg_set)) for sub in test_list)    # getting element matching length res = [sub for sub in test_list if len(sub.intersection(arg_set)) == max_len]    # printing result print("Set intersection : " + str(res))

Output:

The original list is : [{2, 3, 4, 5}, {8, 2, 4, 7}, {1, 2, 3, 4}, {9, 3, 5, 7}]
Max Set intersection : {9, 3, 5, 7}

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning - Basic Level Course

My Personal Notes arrow_drop_up
Recommended Articles
Page :