在本教程中,我们将讨论如何获取两个列表的交集。两个列表的交集意味着我们需要获取两个初始列表中都存在的所有元素。

Python以其出色的内置数据结构而闻名。Python列表是Python的著名和有价值的内置数据类型之一。它可以按排序顺序存储各种数据类型的值。然而,与集合一样,列表没有内置函数。

Python提供了许多方法来执行列表的交集。让我们看看以下情景。

输入:

list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79]  
list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26]  

输出:

[90, 11, 58, 31, 66, 28, 54]

输入:

list1 = [4, 9, 1, 17, 11, 26, 28, 54, 69]  
list2 = [9, 9, 74, 21, 45, 11, 63, 28, 26]  

输出:

[9, 11, 26, 28]

让我们看看获取两个列表的交集的以下方法。

方法1:使用for循环

# Python program to get the intersection  
# of two lists in most simple way  
def intersection_list(list1, list2):  
   list3 = [value for value in list1 if value in list2]  
   return list3  
  
# Driver Code  
list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79]  
list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26]  
print(intersection_list(list1, list2))  

输出:

[90, 11, 58, 31, 66, 28, 54]

我们使用for循环从两个列表中获取公共值,并将其存储在list3变量中。

方法2:将列表转换为集合

def intersection_list(list1, list2):  
   return list(set(list1) & set(list2))  
  
list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79]  
list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26]  
  
print(intersection_list(list1, list2))  

输出:

[66, 90, 11, 54, 58, 28, 31]

方法3:

我们将使用内置集合的intersection()方法。intersection()是集合的一部分。让我们看看以下示例。

# Python program to get the intersection  
# of two lists using set() and intersection()  
def intersection_list(list1, list2):  
   return set(list1).intersection(list2)  
  
list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79]  
list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26]  
  
print(intersection_list(list1, list2))  

输出:

{66, 90, 11, 54, 58, 28, 31}

方法4:

在此方法中,我们将使用混合方法。这是执行任务的更有效方法。让我们看看以下示例。

# Python program to get the intersection  
# of two lists  
def intersection(list1, list2):  
  
   # Use of hybrid method  
   temp = set(list2)  
   list3 = [value for value in list1 if value in temp]  
   return list3  
  
list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79]  
list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26]  
print(intersection(list1, list2))  

输出:

[90, 11, 58, 31, 66, 28, 54]

方法5:

在此方法中,我们将使用filter()方法。交集在其他列表中的子列表上执行。让我们看看以下示例。

# Python program togetthe intersection  
# of two lists, sublists and use of filter()  
def intersection_list(list1, list2):  
   list3 = [list(filter(lambda x: x in list1, sublist)) for sublist in list2]  
   return list3  
  
  
list1 = [10, 9, 17, 40, 23, 18, 56, 49, 58, 60]  
list2 = [[25, 17, 23, 40, 32], [1, 10, 13, 27, 28], [60, 55, 61, 78, 15, 76]]  
print(intersection_list(list1, list2))  

输出:

[[17, 23, 40], [10], [60]]

filter()方法获取子列表的每个项目并检查其是否存在于list1中。列表理解对list2中的每个子列表执行。

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程