Supprimer les doublons de la liste en Python

Sahil Bhosale 21 février 2021
  1. Supprimer les doublons d’une liste en utilisant la fonction set() en Python
  2. Suppression des doublons et maintien de l’ordre dans une liste en utilisant la fonction OrderDict en Python
Supprimer les doublons de la liste en Python

Une liste en Python est une structure de données qui est utilisée pour stocker des données dans un ordre particulier. La liste peut stocker des données de plusieurs types, c’est-à-dire int, float, string, une autre liste, etc. Les listes sont mutables, ce qui signifie que les valeurs une fois créées peuvent être modifiées ultérieurement. Elle est représentée par des crochets [].

myList = [2, 1, 2, 3, 0, 6, 7, 6, 4, 8]
print(myList)

Production :

[2, 1, 2, 3, 0, 6, 7, 6, 4, 8]

Vous pouvez supprimer les éléments en double de la liste ci-dessus en utilisant une boucle for comme indiqué ci-dessous.

myList = [2, 1, 2, 3, 0, 6, 7, 6, 4, 8]

resultantList = []

for element in myList:
    if element not in resultantList:
        resultantList.append(element)

print(resultantList)

Production :

[2, 1, 3, 0, 6, 7, 4, 8]

Si vous ne voulez pas écrire autant de code, alors il y a deux façons les plus populaires de supprimer les éléments en double d’une liste en Python.

  1. Si vous ne voulez pas maintenir l’ordre des éléments à l’intérieur d’une liste après avoir supprimé les éléments en double, alors vous pouvez utiliser une structure de données Set.
  2. Si vous voulez maintenir l’ordre des éléments dans une liste après avoir supprimé les éléments en double, alors vous pouvez utiliser quelque chose appelé OrderedDict.

Supprimer les doublons d’une liste en utilisant la fonction set() en Python

Pour supprimer les doublons d’une liste, nous pouvons utiliser une autre structure de données appelée Set. Un Set est un type de données non ordonné qui ne contient que des valeurs uniques. L’ordre dans lequel l’ensemble stocke les valeurs est différent de l’ordre dans lequel vous avez pu insérer les éléments dans un ensemble. Les ensembles sont représentés par des accolades {}.

Ainsi, lorsque vous imprimez les éléments stockés dans l’ensemble, l’ordre de sortie sera différent. C’est la raison pour laquelle l’indexation ne peut pas être effectuée sur un ensemble parce qu’il n’est pas ordonné.

mySet = {80, 10, 50, 18, 3, 50, 8, 18, 9, 8}
print(mySet)

Production :

{3, 8, 9, 10, 80, 18, 50}

Notez comment l’ordre des éléments a changé après que nous ayons imprimé les éléments.

Dans un ensemble, aucun doublon n’est autorisé, ce qui signifie que si vous avez le même élément plusieurs fois, l’ensemble le considérera comme un seul élément. C’est la raison pour laquelle nous utilisons un ensemble pour supprimer les éléments en double d’une liste en Python.

original_list = [80, 10, 50, 18, 3, 50, 8, 18, 9, 8]

print("Original List is: ", original_list)

convert_list_to_set = set(original_list)
print("Set is: ", convert_list_to_set)

new_list = list(convert_list_to_set)
print("Resultant List is: ", new_list)

original_list = list(convert_list_to_set)
print("Removed duplicates from original list: ", original_list)

Production :

Original List is:  [80, 10, 50, 18, 3, 50, 8, 18, 9, 8]
Set is:  {3, 8, 9, 10, 80, 18, 50}
Resultant List is:  [3, 8, 9, 10, 80, 18, 50]
Removed duplicates from original list:  [3, 8, 9, 10, 80, 18, 50]

Nous convertissons une liste en un ensemble en appliquant la fonction set(). Ensuite, nous convertissons l’ensemble converti, qui a supprimé les doublons, en une liste en appliquant la fonction list().

Suppression des doublons et maintien de l’ordre dans une liste en utilisant la fonction OrderDict en Python

Le problème de l’utilisation d’un ensemble pour supprimer les éléments dupliqués est qu’il ne stocke pas les éléments dans un ordre particulier. Donc, si vous ne vous souciez pas de l’ordre dans lequel les éléments sont stockés dans la liste résultante, c’est-à-dire la liste que vous avez créée après avoir supprimé les doublons, alors dans ce cas vous pouvez utiliser la structure de données Set.

Mais si vous voulez maintenir l’ordre des éléments dans une liste après avoir supprimé les doublons, vous pouvez utiliser OrderedDict en Python. Le OrderDict préserve l’ordre dans lequel les éléments ont été insérés dans la liste. Pour utiliser OrderDict, vous devez d’abord l’importer depuis le module collections en Python from collections import OrderedDict.

from collections import OrderedDict

myList = [2, 1, 2, 3, 0, 6, 7, 6, 8, 0, 4, 8]

final_list = list(OrderedDict.fromkeys(myList))

print(final_list)

Production :

[2, 1, 3, 0, 6, 7, 8, 4]
Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

Article connexe - Python List