📜  Python|两个嵌套列表的交集(1)

📅  最后修改于: 2023-12-03 14:46:25.275000             🧑  作者: Mango

Python | 两个嵌套列表的交集

在Python中,我们可以使用列表(list)来存储和操作多个元素。有时候我们需要找出两个嵌套列表的交集,即找出两个列表中同时存在的元素。本文将介绍如何使用Python来实现这一功能。

方法一:使用列表推导式进行求解

Python中的列表推导式(List Comprehension)提供了一种简洁的方式来创建新的列表。我们可以使用列表推导式来找出两个嵌套列表的交集。

list1 = [...]
list2 = [...]
intersection = [x for x in list1 if x in list2]

上述代码中,我们创建了一个新的列表intersection,其中包含了list1中同时存在于list2中的元素。

方法二:使用集合进行求解

Python中的集合(Set)是无序且不重复的数据集,可以进行集合运算,例如求交集、并集等。我们可以将嵌套列表转换为集合来找出两个列表的交集。

list1 = [...]
list2 = [...]
set1 = set(list1)
set2 = set(list2)
intersection = list(set1.intersection(set2))

上述代码中,我们将嵌套列表list1list2转换为集合set1set2,然后使用集合的intersection方法求出交集,并将结果转换为列表。

需要注意的是,列表和集合都是可变对象,它们中的元素可以随时改变。如果你不希望改变原始列表,可以在转换为集合之前先创建副本。

set1 = set(list1.copy())
set2 = set(list2.copy())
示例

下面是一个完整的示例,展示了如何使用上述方法找出两个嵌套列表的交集。

list1 = [[1,2,3],[4,5,6],[7,8,9]]
list2 = [[2,3,4],[5,6,7],[8,9,10]]

# 使用列表推导式
intersection = [x for x in list1 if x in list2]
print(intersection) # [[5,6,7],[8,9,10]]

# 使用集合
set1 = set([tuple(i) for i in list1])
set2 = set([tuple(i) for i in list2])
intersection = [list(i) for i in set1.intersection(set2)]
print(intersection) # [[5,6,7],[8,9,10]]

该示例首先定义了两个嵌套列表list1list2,然后分别使用列表推导式和集合方法找出它们的交集,并输出结果。

以上就是使用Python找出两个嵌套列表的交集的方法。希望本文对你有所帮助!