📜  两个列表的交集python(1)

📅  最后修改于: 2023-12-03 15:21:33.080000             🧑  作者: Mango

两个列表的交集

在编程中,我们会经常遇到需要找出两个列表之间的交集的情况,即找出两个列表中共同存在的元素。在 Python 中,使用集合 (set) 可以很方便地实现这一操作。

使用 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],即 list1list2 中共同存在的元素。

使用 & 运算符求交集

除了使用 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 中求两个列表交集的几种方法。使用集合或列表解析均可实现,选择哪一种方法取决于具体的应用场景。