logo

Python | Verschil tussen twee lijsten

Bij het programmeren in Python is het vergelijken van twee lijsten een veel voorkomende taak met meerdere benaderingen. In dit artikel worden verschillende methoden onderzocht om de ongelijkheid tussen twee lijsten te achterhalen, waardoor uw vaardigheid in het omgaan met lijsten en gegevensvergelijking wordt verbeterd. Python . Ga met ons mee op deze inzichtelijke reis naar verschillende strategieën voor het onderscheiden van verschillen tussen lijsten.

Voorbeeld



  Input:   list1 = [10, 15, 20, 25, 30, 35, 40] list2 = [25, 40, 35]   Output:   [10, 15, 20, 30]   Explanation:   resultant list = list1 - list2>

Opmerking: Als je meerdere dezelfde elementen hebt, zou dit niet werken. In dat geval verwijdert deze code eenvoudigweg dezelfde elementen.
In dat geval kunt u voor elk element in beide lijsten een telling bijhouden.

Manieren om twee lijsten in Python te vergelijken

Er zijn verschillende manieren om twee lijsten in Python te vergelijken. Hier bespreken we enkele algemeen gebruikte methoden voor het vergelijken van twee lijsten in Python die hieronder volgen.

  • Gebruik in methode
  • Lijstbegrip gebruiken
  • Gebruik set() Functie
  • Gebruik Numpy
  • Gebruik makend van zip() Functie
  • Tel voorvallen met behulp van Balie

Python in trefwoord om twee lijsten in Python te vergelijken

In dit voorbeeld loopt de code door elementen in lijst `li1`, en wordt elk element toegevoegd aan `temp3` als het niet aanwezig is in lijst `li2`. Het uiteindelijke resultaat in `temp3` bevat elementen uit `li1` die niet aanwezig zijn in `li2`.



Python3






li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> temp3>=> []> for> element>in> li1:> >if> element>not> in> li2:> >temp3.append(element)> print>(temp3)>

>

>

reis maar

Uitvoer

[10, 15, 20, 30]>

Verschil tussen twee lijsten in Python met behulp van een lijstbegrip

In dit voorbeeld creëert code een set ‘s’ uit de elementen van lijst ‘li2’, en genereert vervolgens een nieuwe lijst ‘temp3’ met elementen uit lijst ‘li1’ die niet aanwezig zijn in set ‘s’. Ten slotte worden de elementen afgedrukt in ‘temp3’.

Python3




li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> s>=> set>(li2)> temp3>=> [x>for> x>in> li1>if> x>not> in> s]> print>(temp3)>

>

>

Uitvoer

[10, 15, 20, 30]>

Zoek het verschil tussen twee lijsten in Python met set()

Bij deze methode converteren we de lijsten expliciet naar sets en verkleinen we vervolgens eenvoudigweg de ene van de andere met behulp van de aftrekkingsoperator. Bezoek voor meer referenties op set Stelt in Python in . Het is een soortgelijke techniek die we eerder gebruikten. Het enige verschil is dat we de geneste lussen hebben vervangen door de lijst begrip syntaxis.

Python3

Java opent een bestand




li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> s>=> set>(li2)> temp3>=> [x>for> x>in> li1>if> x>not> in> s]> print>(temp3)>

>

>

Uitvoer

[10, 15, 20, 30]>

Gebruik Numpy om Vergelijk twee lijsten in Python

De numpy.concatenate() functie voegt een reeks arrays langs een bestaande as samen. In dit voorbeeld gebruikt de code NumPy om de arrays `li1` en `li2` te maken, vindt de ingestelde verschillen daartussen (`dif1` en `dif2`), en voegt deze verschillen samen in een enkele lijst (`temp3`), waarbij uiteindelijk de resultaat.

Python3

converteer boolean naar string




import> numpy as np> li1>=> np.array([>10>,>15>,>20>,>25>,>30>,>35>,>40>])> li2>=> np.array([>25>,>40>,>35>])> dif1>=> np.setdiff1d(li1, li2)> dif2>=> np.setdiff1d(li2, li1)> temp3>=> np.concatenate((dif1, dif2))> print>(>list>(temp3))>

>

>

Uitvoer

[10, 15, 20, 30]>

Vergelijk twee lijsten in Python met behulp van de functie zip().

In dit voorbeeld vergelijkt code corresponderende elementen van twee lijsten, li1 en li2, en creëert een lijst met Booleaanse waarden die aangeven of de elementen gelijk zijn. De functie `all` controleert of alle elementen in de resultatenlijst waar zijn.

Python3

'kruskal's algoritme'




li1>=> [>10>,>15>,>20>]> li2>=> [>25>,>40>,>35>]> result>=> [a>=>=> b>for> a, b>in> zip>(li1, li2)]> print>(>all>(result))>

>

>

Uitvoer

False>

Vergelijk twee lijsten met behulp van tellingsvoorvallen met behulp van teller

In dit voorbeeld gebruikt de code de klasse `Counter` uit de module `collections` om frequentietellers te maken voor twee lijsten, `li1` en `li2`. Vervolgens vergelijkt het de tellers om te controleren of de lijsten dezelfde elementen met dezelfde frequenties hebben, en wijst het resultaat toe aan `are_lists_equal`.

Python3


binair naar bcd



from> collections>import> Counter> li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> counter1>=> Counter(li1)> counter2>=> Counter(li2)> are_lists_equal>=> counter1>=>=> counter2> print>(are_lists_equal)>

>

>

Uitvoer

False>