In deze tutorial bespreken we hoe we het snijpunt van de twee lijsten kunnen krijgen. Het snijpunt van twee lijsten betekent dat we alle bekende elementen in beide initiële lijsten moeten krijgen.
Python staat bekend om zijn uitstekende ingebouwde datastructuur. Python-lijst is een van de beroemde en waardevolle ingebouwde gegevenstypen van Python. Het kan de verschillende gegevenstypen in gesorteerde volgorde opslaan. Er is echter geen ingebouwde functie voor lijsten zoals sets.
mysql toont alle gebruikers
Python biedt vele manieren om de kruising van de lijsten uit te voeren. Laten we het volgende scenario bekijken.
Invoer :
list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26]
Uitgang:
[90, 11, 58, 31, 66, 28, 54]
Invoer :
list1 = [4, 9, 1, 17, 11, 26, 28, 54, 69] list2 = [9, 9, 74, 21, 45, 11, 63, 28, 26]
Uitgang:
[9, 11, 26, 28]
Laten we de volgende methoden bekijken om de kruising van twee lijsten te krijgen.
Methode - 1: For-lus gebruiken
# 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))
Uitgang:
[90, 11, 58, 31, 66, 28, 54]
We hebben de for-lus gebruikt om de gemeenschappelijke waarde uit beide lijsten te halen en deze in de lijst3-variabele opgeslagen.
Methode - 2: Lijst converteren naar set
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))
Uitgang:
[66, 90, 11, 54, 58, 28, 31]
Methode - 3:
Wij zullen gebruik maken van de inbouwsets kruispunt() methode. De kruispunt() is een eersteklas onderdeel van de set. Laten we het volgende voorbeeld begrijpen.
Voorbeeld -
tekenreeks json java
# 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))
Uitgang:
{66, 90, 11, 54, 58, 28, 31}
Methode - 4:
In deze methode zullen we de hybride methode gebruiken. Dit is een veel efficiënte manier om de taak uit te voeren. Laten we het volgende voorbeeld begrijpen.
Voorbeeld -
# 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))
Uitgang:
[90, 11, 58, 31, 66, 28, 54]
Methode - 5:
Bij deze methode gebruiken we de filter() methode. De kruising wordt uitgevoerd over sublijsten binnen andere lijsten. Laten we het volgende voorbeeld begrijpen.
Voorbeeld -
# 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))
Uitgang:
[[17, 23, 40], [10], [60]]
De filter() methode neemt elk item van de sublijst en controleert of het aanwezig is in lijst1. Het lijstbegrip wordt uitgevoerd voor elke sublijst in de lijst2.