Home >Backend Development >Python Tutorial >How Do You Find the Intersection of Two Nested Lists in Python?
Determining the Intersection of Nested Lists
Finding the intersection of two flat lists is a straightforward process. However, it becomes more complex when dealing with nested lists. This article provides a solution for extracting the common elements from two nested lists and presenting them in a nested format.
To understand the solution, it's important to note that the intersection of two sets, or lists, is the collection of elements that are common to both sets. In the case of nested lists, we need to perform the intersection operation on the individual elements of each list.
To achieve this, we can utilize the built-in set data structure in Python, which provides efficient operations for finding intersections. Consider the following nested lists:
c1 = [1, 6, 7, 10, 13, 28, 32, 41, 58, 63] c2 = [[13, 17, 18, 21, 32], [7, 11, 13, 14, 28], [1, 5, 6, 8, 15, 16]]
Our goal is to find the intersection of these two lists and obtain the following result:
c3 = [[13, 32], [7, 13, 28], [1, 6]]
To accomplish this, we can convert each nested list into a set of its elements. Then, we can perform the intersection operation on these sets to identify the common elements. Finally, we can convert the intersected set back into a nested list, preserving the original nesting structure.
# Convert each nested list to a set set1 = set(c1) set2s = [set(list_) for list_ in c2] # Find the intersection of the sets intersected_sets = set1.intersection(*set2s) # Convert the intersected set back into a nested list c3 = [[element for element in list_ if element in intersected_sets] for list_ in c2]
By following these steps, we can efficiently find the intersection of nested lists and present the result in the desired format.
The above is the detailed content of How Do You Find the Intersection of Two Nested Lists in Python?. For more information, please follow other related articles on the PHP Chinese website!