logo

Cum se compară două liste în Python

Python oferă mai multe moduri de a compara cele două liste. Comparația este procesul în care elementele de date ale sunt verificate cu un alt element de date din listă, indiferent dacă sunt aceleași sau nu.

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

Metodele de comparare a două liste sunt prezentate mai jos.

  • Funcția cmp().
  • Funcția set() și operatorul ==
  • Funcția sort() și operatorul ==
  • Funcția collection.counter().
  • Funcția reduce() și map().

Funcția cmp().

The Piton Funcția cmp() compară cele două obiecte Python și returnează valorile întregi -1, 0, 1 conform comparației.

Notă - Nu se utilizează în versiunea Python 3.x.

Funcția set() și operatorul ==

Piton a stabilit() funcţie manipulați lista în set fără a avea grijă de ordinea elementelor. În plus, folosim operatorul egal cu (==) pentru a compara elementele de date din listă. Să înțelegem următorul exemplu.

Exemplu -

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

Ieșire:

 The list1 and list2 are equal 

Explicaţie:

În exemplul de mai sus, am declarat că cele două liste trebuie comparate între ele. Am convertit acele liste în set și am comparat fiecare element cu ajutorul operatorului ==. Toate elementele sunt egale în ambele liste, atunci dacă blocul este executat și imprimat rezultatul.

Metoda sort() cu operator ==

Piton fel() funcția este utilizată pentru a sorta listele. Elementele aceleiași liste sunt aceeași poziție de index pe care o înseamnă; listele sunt egale.

Notă - În metoda sort(), putem trece elementele din listă în orice ordine, deoarece sortăm lista înainte de comparare.

Să înțelegem următorul exemplu -

Exemplu -

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

Ieșire:

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

Funcția collection.counter().

Modulul de colectare oferă tejghea(), care compară lista în mod eficient. Stochează datele în format dicționar : și numără frecvența articolelor din listă.

Notă - Ordinea elementelor listei nu contează în această funcție.

Exemplu -

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

Ieșire:

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

Reduce () și map ()

The Hartă() funcția acceptă o funcție și un obiect iterabil Python (listă, tuplu, șir etc.) ca argumente și returnează un obiect hartă. Funcția se implementează pentru fiecare element al listei și returnează un iterator ca rezultat.

În plus, The reduce() metoda implementează funcția dată la obiectul iterabil în mod recursiv.

Aici, vom folosi ambele metode în combinație. The Hartă() funcția ar implementa funcția (poate fi definită de utilizator sau funcție lambda) pentru fiecare obiect iterabil și reduce() funcția de îngrijire care s-ar aplica în mod recursiv.

Notă - Trebuie să importăm modulul functool pentru a folosi funcția reduce().

Să înțelegem următorul exemplu.

Exemplu -

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

Ieșire:

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

În această secțiune, am acoperit diferite metode de comparare a două liste în Python.