logo

Hoe twee lijsten in Python te vergelijken

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.