logo

Come confrontare due elenchi in Python

Python offre diversi modi per confrontare i due elenchi. Il confronto è il processo in cui gli elementi di dati vengono confrontati con un altro elemento di dati dell'elenco, indipendentemente dal fatto che siano uguali o meno.

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

Di seguito sono riportati i metodi per confrontare due elenchi.

  • La funzione cmp()
  • La funzione set() e l'operatore ==
  • La funzione sort() e l'operatore ==
  • La funzione collection.counter()
  • Le funzioni reduce() e map()

La funzione cmp()

IL Pitone La funzione cmp() confronta i due oggetti Python e restituisce i valori interi -1, 0, 1 in base al confronto.

Nota: non viene utilizzato nella versione Python 3.x.

La funzione set() e l'operatore ==

Pitone impostato() funzione manipolare l'elenco nell'insieme senza preoccuparsi dell'ordine degli elementi. Inoltre, utilizziamo l'operatore uguale a (==) per confrontare i dati dell'elenco. Comprendiamo il seguente esempio.

Esempio -

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

Produzione:

 The list1 and list2 are equal 

Spiegazione:

Nell'esempio sopra abbiamo dichiarato che i due elenchi devono essere confrontati tra loro. Abbiamo convertito tali elenchi nel set e confrontato ciascun elemento con l'aiuto dell'operatore ==. Tutti gli elementi sono uguali in entrambe le liste, quindi se il blocco viene eseguito e stampa il risultato.

Il metodo sort() con == operatore

Pitone ordinare() la funzione viene utilizzata per ordinare gli elenchi. Gli stessi elementi della lista hanno la stessa posizione di indice che significa; le liste sono uguali.

Nota: nel metodo sort() possiamo passare gli elementi dell'elenco in qualsiasi ordine poiché stiamo ordinando l'elenco prima del confronto.

Comprendiamo il seguente esempio:

Esempio -

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

Produzione:

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

La funzione collection.counter()

Il modulo di raccolta fornisce il file contatore(), che confrontano l'elenco in modo efficiente. Memorizza i dati in formato dizionario: e conta la frequenza degli elementi dell'elenco.

Nota: in questa funzione l'ordine degli elementi dell'elenco non ha importanza.

Esempio -

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

Produzione:

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

Il reduce() e map()

IL carta geografica() La funzione accetta una funzione e un oggetto iterabile Python (lista, tupla, stringa, ecc.) come argomenti e restituisce un oggetto mappa. La funzione implementa ogni elemento dell'elenco e restituisce un iteratore come risultato.

Oltre al ridurre() Il metodo implementa ricorsivamente la funzione data sull'oggetto iterabile.

Qui utilizzeremo entrambi i metodi in combinazione. IL carta geografica() funzione implementerebbe la funzione (può essere definita dall'utente o una funzione lambda) su ogni oggetto iterabile e il file ridurre() la funzione si prenderà cura di ciò si applicherebbe in modo ricorsivo.

Nota: dobbiamo importare il modulo functool per utilizzare la funzione reduce().

Comprendiamo il seguente esempio.

Esempio -

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

Produzione:

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

In questa sezione abbiamo trattato vari metodi per confrontare due elenchi in Python.