logo

Python | Forskjellen mellom to lister

I Python-programmering er det å sammenligne to lister en vanlig oppgave med flere tilnærminger. Denne artikkelen utforsker ulike metoder for å finne ulikhetene mellom to lister, forbedre ferdighetene dine i å håndtere lister og datasammenligning i Python . Bli med oss ​​på denne innsiktsfulle reisen til ulike strategier for å se forskjeller mellom lister.

Eksempel



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

Merk: Når du har flere samme elementer, vil ikke dette fungere. I så fall vil denne koden ganske enkelt fjerne de samme elementene.
I så fall kan du opprettholde en telling av hvert element i begge listene.

Måter å sammenligne to lister i Python

Det er forskjellige måter å sammenligne to lister i Python. Her diskuterer vi noen generelt brukte metoder for å sammenligne to lister i Python som følger.

  • Bruk i metode
  • Bruke listeforståelse
  • Bruk sett() Funksjon
  • Bruk Numpy
  • Ved hjelp av glidelås() Funksjon
  • Tell forekomster ved hjelp av Disk

Python i nøkkelord for å sammenligne to lister i Python

I dette eksemplet itererer koden gjennom elementene i listen `li1`, og legger til hvert element til `temp3` hvis det ikke er til stede i listen `li2`. Det endelige resultatet i `temp3` inneholder elementer fra `li1` som ikke finnes i `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)>

>

>

Produksjon

[10, 15, 20, 30]>

Forskjellen mellom to lister i Python ved å bruke en listeforståelse

I dette eksemplet oppretter koden et sett 's' fra elementene i listen 'li2', og genererer deretter en ny liste 'temp3' som inneholder elementer fra listen 'li1' som ikke er til stede i settet 's'. Til slutt skriver den ut elementene i ‘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)>

java main
>

>

Produksjon

[10, 15, 20, 30]>

Finn forskjellen mellom to lister i Python ved å bruke set()

I denne metoden konverterer vi listene eksplisitt til sett, og deretter reduserer vi bare den ene fra den andre ved å bruke subtraheringsoperatoren. For flere referanser på sett besøk Setter i Python . Det er en lignende teknikk som vi brukte tidligere. Den eneste forskjellen er at vi erstattet de nestede løkkene med listeforståelse syntaks.

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

>

>

Produksjon

[10, 15, 20, 30]>

Bruk Numpy for å Sammenlign to lister i Python

De numpy.concatenate() funksjon sammenkoble en sekvens av matriser langs en eksisterende akse. I dette eksempelet bruker koden NumPy til å lage matrisene `li1` og `li2`, finner de angitte forskjellene mellom dem (`dif1` og `dif2`), og setter disse forskjellene sammen til en enkelt liste (`temp3`), og skriver til slutt ut resultat.

hvordan gjøre streng til int

Python3




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

>

>

Produksjon

[10, 15, 20, 30]>

Sammenlign to lister i Python ved å bruke zip()-funksjonen

I dette eksempelet sammenligner koden tilsvarende elementer i to lister, li1 og li2, og lager en liste med boolske verdier som indikerer om elementene er like. 'alle'-funksjonen sjekker om alle elementene i resultatlisten er sanne.

Python3


kontroll strukturer python



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

>

>

Produksjon

False>

Sammenlign to lister ved hjelp av telleforekomster med teller

I dette eksempelet bruker koden `Counter`-klassen fra `collections`-modulen for å lage frekvenstellere for to lister, `li1` og `li2`. Den sammenligner deretter tellerne for å sjekke om listene har de samme elementene med de samme frekvensene, og tilordner resultatet til «are_lister_lik».

Python3




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

>

>

Produksjon

False>