logo

Programa Python per trobar la intersecció de dues llistes

En aquest tutorial, parlarem de com podem aconseguir la intersecció de les dues llistes. La intersecció de dues llistes significa que hem d'aconseguir tots els elements familiars a les dues llistes inicials.

Python és conegut per la seva excel·lent estructura de dades integrada. La llista Python és un dels famosos i valuosos tipus de dades integrades de Python. Pot emmagatzemar els diferents valors de tipus de dades en ordre ordenat. Tanmateix, no hi ha cap funció integrada per a llistes com els conjunts.

mvc per a java

Python ofereix les moltes maneres de realitzar la intersecció de les llistes. Vegem el següent escenari.

Entrada:

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

Sortida:

 [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] 

Sortida:

 [9, 11, 26, 28] 

Vegem els mètodes següents per obtenir la intersecció de dues llistes.

Mètode - 1: utilitzant el bucle 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)) 

Sortida:

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

Hem utilitzat for loop per obtenir el valor comú d'ambdues llistes i l'hem emmagatzemat a la variable list3.

Mètode - 2: Converteix llista en conjunt

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

Sortida:

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

Mètode - 3:

Farem servir el conjunt integrat intersecció () mètode. El intersecció () és una part de primer nivell del conjunt. Entenem l'exemple següent.

Exemple -

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

Sortida:

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

Mètode - 4:

En aquest mètode, utilitzarem el mètode híbrid. Aquesta és una manera molt eficient de realitzar la tasca. Entenem l'exemple següent.

Exemple -

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

Sortida:

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

Mètode - 5:

En aquest mètode, utilitzarem el filtre () mètode. La intersecció es realitza sobre subllistes dins d'altres llistes. Entenem l'exemple següent.

Exemple -

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

Sortida:

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

El filtre () El mètode pren cada element de la subllista i comprova si està present a la llista1. La comprensió de la llista s'executa per a cada subllista de la llista2.