📅  最后修改于: 2023-12-03 15:21:33.080000             🧑  作者: Mango
在编程中,我们会经常遇到需要找出两个列表之间的交集的情况,即找出两个列表中共同存在的元素。在 Python 中,使用集合 (set) 可以很方便地实现这一操作。
list1 = [1, 3, 5, 7, 9]
list2 = [3, 6, 9, 12, 15]
set1 = set(list1)
set2 = set(list2)
intersection = set1.intersection(set2)
print(intersection)
这段代码会输出 [9, 3]
,即 list1
与 list2
中共同存在的元素。
除了使用 set 的 intersection
方法,我们还可以使用 &
运算符来求两个集合(或两个列表)的交集。
list1 = [1, 3, 5, 7, 9]
list2 = [3, 6, 9, 12, 15]
set1 = set(list1)
set2 = set(list2)
intersection = set1 & set2
print(intersection)
输出结果与前一个例子相同:[9, 3]
。
需要注意的是,集合是无序的,所以输出的结果也是无序的。因此,如果我们需要按照列表中元素的顺序来输出结果,可以使用列表解析的方式:
list1 = [1, 3, 5, 7, 9]
list2 = [3, 6, 9, 12, 15]
set1 = set(list1)
set2 = set(list2)
intersection = [x for x in list1 if x in set2]
print(intersection)
这段代码输出的结果与前两个例子相同:[3, 9]
。
另外,如果列表中存在重复的元素,求交集时只会保留一个元素。如果需要保留重复的元素,可以使用列表解析的方式:
list1 = [1, 2, 3, 3, 4, 5]
list2 = [3, 3, 5, 6]
set1 = set(list1)
set2 = set(list2)
intersection = [x for x in set1 if x in set2]
print(intersection)
输出结果为 [3, 5]
,即保留了重复的元素。
以上就是在 Python 中求两个列表交集的几种方法。使用集合或列表解析均可实现,选择哪一种方法取决于具体的应用场景。