Python: How to find the intersection of N sets

Updated: February 12, 2024 By: Guest Contributor Post a comment

Introduction

Understanding how to find the intersection of multiple sets is a foundational skill in Python programming. This article explores methods to achieve this, ranging from basic to advanced techniques.

Basic Example: Using the intersection() Method

Python sets have a built-in method called intersection() which is the most straightforward way to find common elements between sets.

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}

intersection_set = set1.intersection(set2)

print(intersection_set)  # Output: {3, 4}

Using the & Operator

Another simple method is to use the & operator between sets to find their intersection.

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}

intersection_set = set1 & set2

print(intersection_set)  # Output: {3, 4}

Advanced Example: Finding Intersection of N Sets

For more than two sets, you can (1) use the reduce function from the functools module or (2) apply set comprehension to find the intersection of N sets.

1. Using reduce() and intersection()

from functools import reduce

set_list = [{1, 2}, {2, 3}, {2, 4}]

# Applying reduce to apply intersection iteratively
common_elements = reduce(lambda a, b: a.intersection(b), set_list)

print(common_elements)  # Output: {2}

2. Intersection With Set Comprehension

This method is suitable when you need a dynamic way to calculate the intersection without explicitly specifying the number of sets.

# Assuming all_sets is a list of multiple sets
all_sets = [{1, 2, 3}, {2, 3, 4}, {2, 4, 5}]

# Set comprehension to find common elements
element_in_all_sets = {element for element in all_sets[0] if all(element in each_set for each_set in all_sets)}

print(element_in_all_sets)  # Output: {2}

Conclusion

Finding the intersection of sets in Python can be achieved through various methods, ranging from direct approaches like using the intersection() method or the & operator to more advanced techniques involving reduce or set comprehension. Understanding these methods enhances your data handling and analysis skills in Python.