python取两个list的交集

在Python中,我们经常需要对列表(list)进行操作,其中一个常见的操作是找到两个列表的交集。我们可以使用不同的方法来实现这个目标,本文将详细讨论如何在Python中取两个列表的交集。
方法一:使用集合操作符 &
在Python中,我们可以将列表转换为集合(set),然后通过使用 & 操作符来取两个集合的交集。这是最常见和最简单的方法之一。
list1 = [1, 2, 3, 4, 5]
list2 = [3, 4, 5, 6, 7]
set1 = set(list1)
set2 = set(list2)
intersection = set1 & set2
print(list(intersection))
运行结果:
[3, 4, 5]
方法二:使用列表推导式
除了使用集合操作符,我们还可以使用列表推导式来找到两个列表的交集。这种方法更加灵活,可以在一行代码中完成任务。
list1 = [1, 2, 3, 4, 5]
list2 = [3, 4, 5, 6, 7]
intersection = [x for x in list1 if x in list2]
print(intersection)
运行结果:
[3, 4, 5]
方法三:使用 filter() 函数
filter() 函数可以根据指定的函数过滤序列,我们可以利用这个函数来找到两个列表的交集。
list1 = [1, 2, 3, 4, 5]
list2 = [3, 4, 5, 6, 7]
intersection = list(filter(lambda x: x in list2, list1))
print(intersection)
运行结果:
[3, 4, 5]
方法四:使用 intersection() 方法
如果我们将两个列表转换为集合,我们还可以使用集合对象的 intersection() 方法来找到它们的交集。
list1 = [1, 2, 3, 4, 5]
list2 = [3, 4, 5, 6, 7]
intersection = set(list1).intersection(set(list2))
print(list(intersection))
运行结果:
[3, 4, 5]
方法五:使用 numpy 库
如果我们使用的是数值列表,我们还可以使用 numpy 库提供的函数来找到两个列表的交集。
import numpy as np
list1 = [1, 2, 3, 4, 5]
list2 = [3, 4, 5, 6, 7]
intersection = np.intersect1d(list1, list2)
print(intersection)
运行结果:
[3, 4, 5]
总结
在本文中,我们讨论了如何在Python中取两个列表的交集。我们介绍了五种常见的方法:使用集合操作符 &、列表推导式、filter() 函数、intersection() 方法和 numpy 库。每种方法都有其优点和适用场景,你可以根据实际情况选择合适的方法来操作列表。
极客教程