Python nudi više načina za usporedbu dvaju popisa. Usporedba je proces kada se podatkovne stavke uspoređuju s drugom podatkovnom stavkom popisa, bez obzira jesu li iste ili ne.
list1 - [11, 12, 13, 14, 15] list2 - [11, 12, 13, 14, 15] Output - The lists are equal
Metode usporedbe dvaju popisa navedene su u nastavku.
- Funkcija cmp().
- Funkcija set() i operator ==
- Funkcija sort() i operator ==
- Funkcija collection.counter().
- Funkcije reduce() i map().
Funkcija cmp().
The Piton Funkcija cmp() uspoređuje dva Python objekta i vraća cjelobrojne vrijednosti -1, 0, 1 prema usporedbi.
Napomena - ne koristi se u verziji Python 3.x.
Funkcija set() i operator ==
Piton postaviti () funkcija manipulirati popisom u skupu bez vođenja računa o redoslijedu elemenata. Osim toga, koristimo operator jednako (==) za usporedbu podatkovnih stavki na popisu. Razumimo sljedeći primjer.
kako provjeriti blokirane brojeve na androidu
Primjer -
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')
Izlaz:
The list1 and list2 are equal
Obrazloženje:
U gornjem primjeru, proglasili smo dva popisa za međusobnu usporedbu. Pretvorili smo te liste u skup i usporedili svaki element uz pomoć == operatora. Svi elementi su jednaki u obje liste, a zatim ako se blok izvrši i ispiše rezultat.
avl stabla
Metoda sort() s operatorom ==
Piton vrsta() funkcija se koristi za sortiranje popisa. Isti elementi popisa imaju istu indeksnu poziciju koju znače; liste su jednake.
Napomena - u metodi sort() možemo proslijediti stavke popisa bilo kojim redoslijedom jer sortiramo popis prije usporedbe.
Razumimo sljedeći primjer -
Primjer -
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')
Izlaz:
The list1 and list3 are not the same The list1 and list2 are not the same
Funkcija collection.counter().
Modul prikupljanja pruža brojač(), koji učinkovito uspoređuju popis. Pohranjuje podatke u obliku rječnika : i broji učestalost stavki na popisu.
foreach java
Napomena - Redoslijed elemenata popisa nije bitan u ovoj funkciji.
Primjer -
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')
Izlaz:
The lists list1 and list2 are not the same The lists list1 and list3 are the same
Reduced() i map()
The karta() funkcija prihvaća funkciju i Python objekt koji se može ponavljati (popis, tuple, string itd.) kao argumente i vraća objekt karte. Funkcija se implementira na svaki element popisa i kao rezultat vraća iterator.
Osim toga, The smanjiti() metoda rekurzivno implementira zadanu funkciju u objekt koji se može ponoviti.
Ovdje ćemo koristiti obje metode u kombinaciji. The karta() funkcija bi implementirala funkciju (to može biti korisnički definirana ili lambda funkcija) na svaki objekt koji se može ponavljati i smanjiti() funkcija koja bi se primjenjivala na rekurzivan način.
Napomena - Moramo uvesti modul functool da bismo koristili funkciju reduce().
Razumimo sljedeći primjer.
Primjer -
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')
Izlaz:
stvaranje skripte ljuske izvršnom
The list1 and list2 are not the same The list1 and list3 are the same
U ovom odjeljku pokrili smo različite metode usporedbe dva popisa u Pythonu.