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>