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.