Python propose plusieurs façons de comparer les deux listes. La comparaison est le processus par lequel les éléments de données de sont vérifiés par rapport à un autre élément de données de la liste, qu'ils soient identiques ou non.
list1 - [11, 12, 13, 14, 15] list2 - [11, 12, 13, 14, 15] Output - The lists are equal
Les méthodes de comparaison de deux listes sont indiquées ci-dessous.
- La fonction cmp()
- La fonction set() et l'opérateur ==
- La fonction sort() et l'opérateur ==
- La fonction collection.counter()
- Les fonctions réduire() et map()
La fonction cmp()
Le Python La fonction cmp() compare les deux objets Python et renvoie les valeurs entières -1, 0, 1 selon la comparaison.
Remarque - Il n'est pas utilisé dans la version Python 3.x.
La fonction set() et l'opérateur ==
Python ensemble() fonction manipuler la liste dans l'ensemble sans se soucier de l'ordre des éléments. De plus, nous utilisons l'opérateur égal à (==) pour comparer les éléments de données de la liste. Comprenons l'exemple suivant.
Exemple -
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')
Sortir:
The list1 and list2 are equal
Explication:
Dans l'exemple ci-dessus, nous avons déclaré que les deux listes devaient être comparées entre elles. Nous avons converti ces listes en ensemble et comparé chaque élément à l'aide de l'opérateur ==. Tous les éléments sont égaux dans les deux listes, alors si le bloc est exécuté et imprimé le résultat.
La méthode sort() avec l'opérateur ==
Python trier() La fonction est utilisée pour trier les listes. Les éléments de la même liste ont la même position d'index que cela signifie ; les listes sont égales.
Remarque - Dans la méthode sort(), nous pouvons transmettre les éléments de la liste dans n'importe quel ordre car nous trions la liste avant la comparaison.
Comprenons l'exemple suivant -
Exemple -
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')
Sortir:
The list1 and list3 are not the same The list1 and list2 are not the same
La fonction collection.counter()
Le module de collecte fournit le comptoir(), qui comparent efficacement la liste. Il stocke les données sous forme de dictionnaire : et compte la fréquence des éléments de la liste.
Remarque - L'ordre des éléments de la liste n'a pas d'importance dans cette fonction.
Exemple -
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')
Sortir:
The lists list1 and list2 are not the same The lists list1 and list3 are the same
Les réducteurs() et map()
Le carte() La fonction accepte une fonction et un objet itérable Python (liste, tuple, chaîne, etc.) comme arguments et renvoie un objet map. La fonction implémente chaque élément de la liste et renvoie un itérateur en conséquence.
D'ailleurs, Le réduire() La méthode implémente la fonction donnée sur l’objet itérable de manière récursive.
Ici, nous utiliserons les deux méthodes en combinaison. Le carte() La fonction implémenterait la fonction (il peut s'agir d'une fonction définie par l'utilisateur ou lambda) pour chaque objet itérable et le réduire() la fonction s'occupe de cela s'appliquerait de manière récursive.
Remarque - Nous devons importer le module functool pour utiliser la fonction réduire().
Comprenons l'exemple suivant.
Exemple -
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')
Sortir:
The list1 and list2 are not the same The list1 and list3 are the same
Dans cette section, nous avons abordé différentes méthodes de comparaison de deux listes en Python.