In deze tutorial ontdekken we twee Pythonische manieren om het verschil tussen twee lijsten te vinden. Een van de methoden is het gebruik van de Python Set. Deze converteert de lijsten eerst in sets en haalt daar dan het unieke deel uit.
Andere niet-set methoden vergelijken twee lijsten element voor element en verzamelen de unieke. We kunnen deze implementeren door geneste for-lussen te gebruiken en met de list comprehension.
Wanneer u overigens niet op de hoogte bent van de sets in Python, volg dan de onderstaande tutorial. Het zou u snel laten kennismaken met hoe Python de wiskundige vorm van Set implementeert.
Python Set
Python Manieren om het verschil tussen twee lijsten te vinden
Python Set lijkt de meest voor de hand liggende keuze te zijn om zowel het gemeenschappelijke als het verschil van twee lijsten te identificeren. Dus, we gaan het eerst verkennen en zullen dan geneste lussen en list comprehension gebruiken.
Voordat we overgaan naar het oplossingsgedeelte, laten we de testparameters definiëren, d.w.z, de twee lijsten waarvan we het verschil moeten vinden.
# Test Inputlist_a = list_b =
En we willen dat onze oplossing de volgende uitvoer oplevert:
# Expected Result# list_out = list_a - list_blist_out =
Laten we beginnen met het maken van een programma om het verschil tussen twee lijsten te vinden, eerst met behulp van sets.
Gebruik set() om het verschil van twee lijsten te vinden
In deze aanpak leiden we eerst twee SET’s (zeg set1 en set2) af van de LIST’s (zeg list1 en list2) door ze aan de functie set() door te geven. Daarna voeren we de set-verschil operatie uit. Het zal die elementen van lijst1 teruggeven die niet bestaan in de tweede.
Hier is het voorbeeld Python programma om het verschil van twee lijsten te krijgen.
"""Desc: Using set() to find the difference between two lists in Python"""def list_diff(list1, list2): return (list(set(list1) - set(list2))) # Test Inputlist1 = list2 = # Run Testprint(list_diff(list1, list2))
Na het uitvoeren van dit, zou u het volgende resultaat moeten zien:
Zonder set(), met behulp van geneste lussen
In deze methode, zullen we geneste For Loop gebruiken om elk element van de eerste lijst te vergelijken met de tweede. En tijdens het doorlopen voegen we elk niet-overeenkomend item toe aan een nieuwe (en lege) lijst.
De nieuwe lijst zou uiteindelijk het verschil tussen de twee gegeven reeksen bevatten. Hieronder vindt u een voorbeeldprogramma om deze aanpak te demonstreren.
"""Desc: Nested loop to find the difference between two lists in Python"""def list_diff(list1, list2): out = for ele in list1: if not ele in list2: out.append(ele) return out# Test Inputlist1 = list2 = # Run Testprint(list_diff(list1, list2))
Na het uitvoeren van het bovenstaande programma zou u het volgende resultaat moeten zien:
Zonder set(), met behulp van list comprehension
Het is bijna een soortgelijke techniek die we in het vorige programma hebben gebruikt. Hier hebben we de geneste lussen vervangen door de list comprehension syntax.
Zie het voorbeeld hieronder.
"""Desc: List comprehension to find the difference between two lists in Python"""def list_diff(list1, list2): out = return out# Test Inputlist1 = list2 = # Run Testprint(list_diff(list1, list2))
Na het uitvoeren van het bovenstaande programma, zou u het volgende resultaat moeten zien: