Faites la différence entre deux listes en Python

Lakshay Kapoor 30 janvier 2023
  1. Utilisez set.difference() pour trouver la différence entre deux listes en Python
  2. Utilisez set.symmetric_difference() pour trouver la différence entre deux listes en Python
  3. Utilisez le mot-clé in pour trouver la différence entre les deux listes en Python
  4. Utilisez la bibliothèque NumPy pour trouver la différence entre deux listes en Python
Faites la différence entre deux listes en Python

De nombreuses opérations sont effectuées sur des structures de données telles que des listes, des dictionnaires, des tuples et des tableaux. En Python, ces structures de données sont utilisées dans presque tous les programmes. L’une de ces structures de données est les listes en Python. Les listes dans la programmation Python aident à stocker plus d’un élément dans une seule variable. Découvrir la différence entre deux listes est une tâche très courante que presque tous les programmeurs effectuent.

Ce tutoriel montrera plusieurs façons d’obtenir la différence entre deux listes en Python.

Utilisez set.difference() pour trouver la différence entre deux listes en Python

La méthode set() aide l’utilisateur à convertir n’importe quel itérable en une séquence itérable, également appelée ensemble. Les itérables peuvent être une liste, un dictionnaire ou un tuple.

La fonction set.difference() permet de renvoyer la différence entre les deux ensembles. Cette fonction élimine essentiellement les éléments communs dans deux ensembles.

list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]

difference_1 = set(list_1).difference(set(list_2))
difference_2 = set(list_2).difference(set(list_1))

list_difference = list(difference_1.union(difference_2))
print(list_difference)

Production:

[50, 5, 40, 25, 60, 15]

Pour cette méthode, la première étape consiste à stocker les deux listes dans deux variables. La fonction set() permet de convertir ces listes en ensembles. Dans la même étape, la fonction set.difference() est utilisée pour trouver la différence entre les deux ensembles. Notez que la variable difference_1 récupère les éléments dans list_1 et non dans list_2.

La variable difference_2 obtient les éléments qui sont dans list_2 et non dans list_1. Après cela, la fonction union est utilisée pour obtenir tous les éléments des variables difference_1 et difference_2. De plus, la fonction list() est utilisée pour reconvertir les deux ensembles en listes. Enfin, la liste résultante est imprimée.

Utilisez set.symmetric_difference() pour trouver la différence entre deux listes en Python

Ici, la méthode set() est utilisée pour convertir initialement les deux listes en ensembles.

La méthode symmetric_difference() est utilisée pour retourner les éléments qui sont soit dans le premier ensemble, soit dans le deuxième ensemble. Cette méthode ne renvoie pas l’intersection comme les éléments communs des deux ensembles.

list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]

set_difference = set(list_1).symmetric_difference(set(list_2))
list_difference = list(set_difference)

print(list_difference)

Production:

[5, 40, 15, 50, 25, 60]

La méthode set() est également utilisée pour convertir des listes en ensembles. Après avoir obtenu la différence, la fonction list() est utilisée pour obtenir et convertir l’ensemble final, comme la conversion de set_difference en une liste.

Utilisez le mot-clé in pour trouver la différence entre les deux listes en Python

Le mot-clé in permet de vérifier si un élément est présent dans une séquence itérable comme une liste ou non.

La fonction append() est également utilisée dans cette méthode. append() est utilisé pour ajouter des éléments à une liste existante ; il ne fait pas de nouvelle liste, mais il modifie la liste initiale en y ajoutant des éléments.

list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]

list_difference = []
for element in list_1:
    if element not in list_2:
        list_difference.append(element)

print(list_difference)

Production:

[5, 15, 25]

Dans cette méthode, nous initialisons d’abord la liste finale qui doit être imprimée avec zéro élément. Ensuite, nous utilisons une boucle for pour démarrer l’itération avec la première liste, qui est list_1. Après cela, nous utilisons le mot-clé not in pour vérifier si un élément est dans la deuxième liste ou non.

Enfin, nous utilisons la méthode append() pour ajouter les éléments qui ne sont pas dans la deuxième liste à la liste initiale, c’est-à-dire list_difference . L’inconvénient de cette méthode, cependant, est qu’elle ne renvoie pas les éléments de la deuxième liste.

Pour simplifier cette méthode, utilisez la compréhension de liste. La liste compréhension est une méthode qui permet de créer une nouvelle liste avec les éléments d’une liste existante.

list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]

list_difference = [element for element in list_1 if element not in list_2]

print(list_difference)

Production:

[5, 15, 25]

Utilisez la bibliothèque NumPy pour trouver la différence entre deux listes en Python

La bibliothèque NumPy de Python est une bibliothèque très couramment utilisée. Cette bibliothèque aide l’utilisateur à effectuer des tâches dans les tableaux, les matrices et l’algèbre linéaire.

Dans cette méthode, trois fonctions de la bibliothèque NumPy sont utilisées pour faire la différence entre deux listes. Ces trois fonctions sont np.array(), np.setdiff1d() et np.concatenate().

Un tableau est la structure de données principale de la bibliothèque NumPy. La fonction np.array() vous aide à créer un tableau et vous aide à travailler avec eux.

La fonction np.setdiff1d() vous aide à trouver la différence définie entre deux tableaux et à renvoyer les valeurs qui se trouvent dans le premier tableau et non dans le deuxième.

La fonction np.concatenate est utilisée pour combiner deux ou plusieurs tableaux NumPy ensemble. Vérifiez l’exemple ci-dessous :

import numpy as np

list_1 = [5, 10, 15, 20, 25, 30]
list_2 = [10, 20, 30, 40, 50, 60]

array_1 = np.array(list_1)
array_2 = np.array(list_2)

difference_1 = np.setdiff1d(array_1, array_2)
difference_2 = np.setdiff1d(array_2, array_1)

list_difference = np.concatenate((difference_1, difference_2))
print(list(list_difference))

Production:

[5, 15, 25, 40, 50, 60]
Lakshay Kapoor avatar Lakshay Kapoor avatar

Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.

LinkedIn

Article connexe - Python List