Python gir flere måter å sammenligne de to listene på. Sammenligning er prosessen når dataelementene til kontrolleres mot et annet dataelement på listen, enten de er like eller ikke.
list1 - [11, 12, 13, 14, 15] list2 - [11, 12, 13, 14, 15] Output - The lists are equal
Metodene for å sammenligne to lister er gitt nedenfor.
- cmp()-funksjonen
- Set()-funksjonen og ==-operatoren
- Sort()-funksjonen og ==-operatoren
- Collection.counter()-funksjonen
- Reduser() og map()-funksjonen
cmp()-funksjonen
De Python cmp()-funksjonen sammenligner de to Python-objektene og returnerer heltallsverdiene -1, 0, 1 i henhold til sammenligningen.
Merk - Den brukes ikke i Python 3.x-versjonen.
Set()-funksjonen og ==-operatoren
Python sett() funksjon manipuler listen inn i settet uten å ta vare på rekkefølgen på elementene. Dessuten bruker vi lik til-operatoren (==) for å sammenligne dataelementene i listen. La oss forstå følgende eksempel.
Eksempel -
list1 = [11, 12, 13, 14, 15] list2 = [12, 13, 11, 15, 14] a = set(list1) b = set(list2) if a == b: print('The list1 and list2 are equal') else: print('The list1 and list2 are not equal')
Produksjon:
The list1 and list2 are equal
Forklaring:
I eksemplet ovenfor har vi erklært at de to listene skal sammenlignes med hverandre. Vi konverterte disse listene til settet og sammenlignet hvert element ved hjelp av ==-operatoren. Alle elementene er like i begge listene, hvis blokk utført og skrevet ut resultatet.
Sort()-metoden med ==-operatoren
Python sortere() funksjonen brukes til å sortere listene. Elementene til den samme listen er den samme indeksposisjonen som det betyr; lister er like.
Merk - I sort()-metoden kan vi sende listeelementene i hvilken som helst rekkefølge fordi vi sorterer listen før sammenligning.
La oss forstå følgende eksempel -
Eksempel -
import collections list1 = [10, 20, 30, 40, 50, 60] list2 = [10, 20, 30, 50, 40, 70] list3 = [50, 10, 30, 20, 60, 40] # Sorting the list list1.sort() list2.sort() list3.sort() if list1 == list2: print('The list1 and list2 are the same') else: print('The list1 and list3 are not the same') if list1 == list3: print('The list1 and list2 are not the same') else: print('The list1 and list2 are not the same')
Produksjon:
The list1 and list3 are not the same The list1 and list2 are not the same
Collection.counter()-funksjonen
Innsamlingsmodulen gir disk(), som sammenligner listen effektivt. Den lagrer dataene i ordbokformat: og teller frekvensen av listens elementer.
Merk - Rekkefølgen på listens elementer spiller ingen rolle i denne funksjonen.
Eksempel -
import collections list1 = [10, 20, 30, 40, 50, 60] list2 = [10, 20, 30, 50, 40, 70] list3 = [50, 10, 30, 20, 60, 40] if collections.Counter(list1) == collections.Counter(list2): print('The lists l1 and l2 are the same') else: print('The lists l1 and l2 are not the same') if collections.Counter(list1) == collections.Counter(list3): print('The lists l1 and l3 are the same') else: print('The lists l1 and l3 are not the same')
Produksjon:
python __dict__
The lists list1 and list2 are not the same The lists list1 and list3 are the same
Reduser() og map()
De kart() funksjon aksepterer en funksjon og Python iterable objekt (liste, tuppel, streng, etc) som argumenter og returnerer et kartobjekt. Funksjonen implementerer hvert element i listen og returnerer en iterator som et resultat.
Ved siden av redusere() metoden implementerer den gitte funksjonen til det iterbare objektet rekursivt.
Her vil vi bruke begge metodene i kombinasjon. De kart() funksjonen vil implementere funksjonen (den kan være brukerdefinert eller lambda-funksjon) til hvert iterable objekt og redusere() funksjon ta seg av som ville gjelde på rekursiv måte.
Merk - Vi må importere functool-modulen for å bruke reduce()-funksjonen.
La oss forstå følgende eksempel.
Eksempel -
import functools list1 = [10, 20, 30, 40, 50] list2 = [10, 20, 30, 50, 40, 60, 70] list3 = [10, 20, 30, 40, 50] if functools.reduce(lambda x, y: x and y, map(lambda a, b: a == b, list1, list2), True): print('The list1 and list2 are the same') else: print('The list1 and list2 are not the same') if functools.reduce(lambda x, y: x and y, map(lambda a, b: a == b, list1, list3), True): print('The list1 and list3 are the same') else: print('The list1 and list3 are not the same')
Produksjon:
The list1 and list2 are not the same The list1 and list3 are the same
I denne delen har vi dekket ulike metoder for å sammenligne to lister i Python.