logo

Programa Python para encontrar a interseção de duas listas

Neste tutorial, discutiremos como podemos obter a interseção das duas listas. A intersecção de duas listas significa que precisamos obter todos os elementos familiares de ambas as listas iniciais.

Pitão é conhecido por sua excelente estrutura de dados integrada. A lista Python é um dos famosos e valiosos tipos de dados integrados do Python. Ele pode armazenar os valores de vários tipos de dados em ordem de classificação. No entanto, não existe uma função integrada para listas como conjuntos.

arquivo aberto java

Python fornece várias maneiras de realizar a interseção das listas. Vejamos o seguinte cenário.

Entrada :

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

Saída:

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

Entrada :

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

Saída:

 [9, 11, 26, 28] 

Vejamos os seguintes métodos para obter a interseção de duas listas.

Método - 1: Usando loop 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)) 

Saída:

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

Usamos o loop for para obter o valor comum de ambas as listas e o armazenamos na variável list3.

Método - 2: Converter lista em conjunto

 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)) 

Saída:

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

Método - 3:

Usaremos o conjunto integrado interseção() método. O interseção() é uma parte de primeira classe do conjunto. Vamos entender o exemplo a seguir.

Exemplo -

java adicionar ao array
 # 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)) 

Saída:

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

Método - 4:

Neste método, usaremos o método híbrido. Esta é uma maneira muito eficiente de executar a tarefa. Vamos entender o exemplo a seguir.

Exemplo -

 # 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)) 

Saída:

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

Método - 5:

Neste método, usaremos o filtro() método. A interseção é realizada em sublistas dentro de outras listas. Vamos entender o exemplo a seguir.

Exemplo -

 # 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)) 

Saída:

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

O filtro() O método pega cada item da sublista e verifica se ele está presente na lista1. A compreensão da lista é executada para cada sublista na lista2.