📅  最后修改于: 2023-12-03 15:34:19.083000             🧑  作者: Mango
在编程中,我们有时需要找到多个列表中的共同元素,这就是所谓的“交集”。Python提供了几种方法来实现这个目标。
我们可以使用for循环和if语句来找到多个列表中的共同元素。具体步骤如下:
下面是实现代码:
def intersection(lists):
result = []
for element in lists[0]:
if all(element in sublist for sublist in lists[1:]):
result.append(element)
return result
# 示例
list1 = [1,2,3,4,5]
list2 = [2,3,4,5,6]
list3 = [4,5,6,7,8]
print(intersection([list1, list2, list3]))
# 输出 [4, 5]
Python中set类提供了intersection()方法来获取多个集合或列表的交集。具体步骤如下:
下面是实现代码:
def intersection(lists):
set1 = set(lists[0])
for sublist in lists[1:]:
set1 = set1.intersection(sublist)
return list(set1)
# 示例
list1 = [1,2,3,4,5]
list2 = [2,3,4,5,6]
list3 = [4,5,6,7,8]
print(intersection([list1, list2, list3]))
# 输出 [4, 5]
我们还可以使用reduce()函数和set类的intersection()方法来找到多个列表的交集。具体步骤如下:
下面是实现代码:
from functools import reduce
def intersection(lists):
sets = list(map(set, lists))
return list(reduce(set.intersection, sets))
# 示例
list1 = [1,2,3,4,5]
list2 = [2,3,4,5,6]
list3 = [4,5,6,7,8]
print(intersection([list1, list2, list3]))
# 输出 [4, 5]
以上是三种实现方法,可以根据实际需求选择其中一种方法。