Python biedt meerdere manieren om de twee lijsten te vergelijken. Vergelijking is het proces waarbij de gegevensitems worden vergeleken met een ander gegevensitem uit de lijst, ongeacht of ze hetzelfde zijn of niet.
list1 - [11, 12, 13, 14, 15] list2 - [11, 12, 13, 14, 15] Output - The lists are equal
De methoden voor het vergelijken van twee lijsten worden hieronder gegeven.
- De cmp()-functie
- De set() functie en == operator
- De sort() functie en == operator
- De functie collection.counter().
- De functies reduce() en map().
De cmp()-functie
De Python De functie cmp() vergelijkt de twee Python-objecten en retourneert de gehele waarden -1, 0, 1 volgens de vergelijking.
Opmerking - Het wordt niet gebruikt in de Python 3.x-versie.
De set() functie en == operator
Python set() functie manipuleer de lijst in de set zonder rekening te houden met de volgorde van de elementen. Daarnaast gebruiken we de gelijk aan-operator (==) om de gegevensitems van de lijst te vergelijken. Laten we het volgende voorbeeld begrijpen.
Voorbeeld -
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')
Uitgang:
gekoppelde lijst java
The list1 and list2 are equal
Uitleg:
In het bovenstaande voorbeeld hebben we aangegeven dat de twee lijsten met elkaar vergeleken moeten worden. We hebben die lijsten omgezet in de set en elk element vergeleken met behulp van de operator ==. Alle elementen zijn gelijk in beide lijsten, als het blok wordt uitgevoerd en het resultaat wordt afgedrukt.
De sort() methode met == operator
Python soort() functie wordt gebruikt om de lijsten te sorteren. De elementen van dezelfde lijst hebben dezelfde indexpositie die het betekent; lijsten zijn gelijk.
Opmerking - Bij de sort()-methode kunnen we de lijstitems in willekeurige volgorde doorgeven, omdat we de lijst sorteren vóór vergelijking.
Laten we het volgende voorbeeld begrijpen -
c++ ingesteld
Voorbeeld -
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')
Uitgang:
The list1 and list3 are not the same The list1 and list2 are not the same
De functie collection.counter().
De verzamelmodule biedt de balie(), die de lijst efficiënt vergelijken. Het slaat de gegevens op in woordenboekformaat: en telt de frequentie van de items in de lijst.
Opmerking - De volgorde van de elementen in de lijst doet er niet toe in deze functie.
Voorbeeld -
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')
Uitgang:
The lists list1 and list2 are not the same The lists list1 and list3 are the same
De reduce() en map()
De kaart() function accepteert een functie en een itereerbaar Python-object (lijst, tuple, string, enz.) als argumenten en retourneert een kaartobject. De functie wordt op elk element van de lijst geïmplementeerd en retourneert als resultaat een iterator.
Naast de verminderen() methode implementeert de gegeven functie recursief op het iterabele object.
Hier zullen we beide methoden in combinatie gebruiken. De kaart() function zou de functie implementeren (het kan een door de gebruiker gedefinieerde of lambda-functie zijn) voor elk itereerbaar object en de verminderen() functie zorg ervoor dat dit op recursieve wijze zou gelden.
Opmerking - We moeten de functool-module importeren om de functie reduce() te gebruiken.
Laten we het volgende voorbeeld begrijpen.
Voorbeeld -
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')
Uitgang:
zip-opdracht in Linux
The list1 and list2 are not the same The list1 and list3 are the same
In deze sectie hebben we verschillende methoden besproken om twee lijsten in Python te vergelijken.