A Python többféle módot kínál a két lista összehasonlítására. Az összehasonlítás az a folyamat, amikor az adatelemeket a lista egy másik adateleméhez hasonlítják, függetlenül attól, hogy azonosak-e vagy sem.
list1 - [11, 12, 13, 14, 15] list2 - [11, 12, 13, 14, 15] Output - The lists are equal
Az alábbiakban bemutatjuk a két lista összehasonlításának módszereit.
- A cmp() függvény
- A set() függvény és az == operátor
- A sort() függvény és az == operátor
- A collection.counter() függvény
- A redukció() és a map() függvény
A cmp() függvény
A Piton cmp() függvény összehasonlítja a két Python objektumot, és az összehasonlításnak megfelelően -1, 0, 1 egész értékeket ad vissza.
Megjegyzés – Python 3.x verzióban nem használható.
A set() függvény és az == operátor
Piton készlet() funkció manipulálja a listát a halmazba anélkül, hogy ügyelne az elemek sorrendjére. Emellett az egyenlő operátort (==) használjuk a lista adatelemeinek összehasonlítására. Értsük meg a következő példát.
Példa -
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')
Kimenet:
The list1 and list2 are equal
Magyarázat:
A fenti példában a két listát egymással összehasonlításra deklaráltuk. Ezeket a listákat a halmazba konvertáltuk, és az egyes elemeket összehasonlítottuk az == operátor segítségével. Minden elem egyenlő mindkét listában, majd ha a blokkot végrehajtjuk és kinyomtatjuk az eredményt.
int konvertálása karakterláncra
A sort() metódus == operátorral
Piton fajta() függvény a listák rendezésére szolgál. Ugyanannak a listaelemnek ugyanaz az indexpozíciója, mint amit jelent; a listák egyenlőek.
Megjegyzés - A sort() metódusban a listaelemeket tetszőleges sorrendben adhatjuk át, mert összehasonlítás előtt rendezzük a listát.
Értsük meg a következő példát -
Példa -
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')
Kimenet:
The list1 and list3 are not the same The list1 and list2 are not the same
A collection.counter() függvény
A gyűjtőmodul biztosítja a számláló(), amelyek hatékonyan hasonlítják össze a listát. Az adatokat szótár formátumban tárolja: és számolja a lista elemeinek gyakoriságát.
Megjegyzés - A lista elemeinek sorrendje ebben a függvényben nem számít.
Példa -
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')
Kimenet:
The lists list1 and list2 are not the same The lists list1 and list3 are the same
A redukció() és a map()
A térkép() függvény argumentumként fogad el egy függvényt és egy Python iterálható objektumot (lista, sor, karakterlánc stb.), és egy leképezési objektumot ad vissza. A függvény a lista minden elemét implementálja, és ennek eredményeként egy iterátort ad vissza.
git add --all
Mellett csökkenti() metódus rekurzívan implementálja az adott függvényt az iterálható objektumhoz.
Itt mindkét módszert kombinálva fogjuk használni. A térkép() függvény implementálja a függvényt (lehet felhasználó által definiált vagy lambda függvény) minden iterálható objektumra és a csökkenti() függvény gondoskodik, amely rekurzív módon érvényesülne.
Megjegyzés - Importálnunk kell a functool modult, hogy használhassuk a Reduction() függvényt.
Értsük meg a következő példát.
Példa -
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')
Kimenet:
The list1 and list2 are not the same The list1 and list3 are the same
Ebben a részben bemutattuk a Python két lista összehasonlításának különféle módszereit.