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.