logo

Hur man jämför två listor i Python

Python erbjuder flera sätt att jämföra de två listorna. Jämförelse är processen när dataposterna kontrolleras mot en annan datapost i listan, oavsett om de är samma eller inte.

 list1 - [11, 12, 13, 14, 15] list2 - [11, 12, 13, 14, 15] Output - The lists are equal 

Metoderna för att jämföra två listor ges nedan.

  • cmp()-funktionen
  • Funktionen set() och operatorn ==
  • Sort()-funktionen och ==-operatorn
  • Funktionen collection.counter()
  • Funktionerna reduce() och map().

cmp()-funktionen

De Pytonorm cmp()-funktionen jämför de två Python-objekten och returnerar heltalsvärdena -1, 0, 1 enligt jämförelsen.

Obs - Det används inte i Python 3.x-versionen.

Funktionen set() och operatorn ==

Pytonorm uppsättning() fungera manipulera listan i uppsättningen utan att ta hand om ordningen på elementen. Dessutom använder vi operatorn lika med (==) för att jämföra dataposterna i listan. Låt oss förstå följande exempel.

Exempel -

java returkommando
 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') 

Produktion:

 The list1 and list2 are equal 

Förklaring:

I exemplet ovan har vi förklarat att de två listorna ska jämföras med varandra. Vi konverterade dessa listor till uppsättningen och jämförde varje element med hjälp av ==-operatorn. Alla element är lika i båda listorna, om det blockexekveras och skrivs ut resultatet.

Metoden sort() med operatorn ==

Pytonorm sortera() funktionen används för att sortera listorna. Samma listas element har samma indexposition som det betyder; listor är lika.

pothineni bagge

Notera - I sort()-metoden kan vi skicka listobjekten i valfri ordning eftersom vi sorterar listan före jämförelse.

Låt oss förstå följande exempel -

Exempel -

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

Produktion:

 The list1 and list3 are not the same The list1 and list2 are not the same 

Funktionen collection.counter()

Insamlingsmodulen tillhandahåller disken(), som jämför listan effektivt. Den lagrar data i ordboksformat : och räknar frekvensen av listans poster.

Notera - Ordningen på listans element spelar ingen roll i den här funktionen.

Exempel -

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

Produktion:

 The lists list1 and list2 are not the same The lists list1 and list3 are the same 

reduce() och map()

De Karta() funktion accepterar en funktion och itererbara Python-objekt (lista, tuppel, sträng, etc) som argument och returnerar ett kartobjekt. Funktionen implementerar till varje element i listan och returnerar en iterator som ett resultat.

Förutom minska() metoden implementerar den givna funktionen till det itererbara objektet rekursivt.

Här kommer vi att använda båda metoderna i kombination. De Karta() funktion skulle implementera funktionen (den kan vara användardefinierad eller lambda-funktion) till varje itererbart objekt och minska() funktion ta hand om som skulle gälla på rekursivt sätt.

Notera - Vi måste importera functool-modulen för att använda reduce()-funktionen.

Låt oss förstå följande exempel.

byt namn på linux-katalogen

Exempel -

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

Produktion:

 The list1 and list2 are not the same The list1 and list3 are the same 

I det här avsnittet har vi täckt olika metoder för att jämföra två listor i Python.