logo

Kako usporediti dvije liste u Pythonu

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.