Comment supprimer les doublons d'une liste dans Python

Python supprimer les doublons d'une liste

Une liste est un conteneur qui contient différents Python des objets, qui peuvent être des entiers, des mots, des valeurs, etc. C'est l'équivalent d'un tableau dans d'autres langages de programmation.

Nous allons donc passer ici en revue différentes manières de supprimer les doublons d'une liste donnée dans Python.

Méthode 1) Supprimer les doublons de la liste à l'aide de Set

Pour supprimer les doublons d'une liste, vous pouvez utiliser la fonction intégrée set(). La particularité de la méthode set() est qu’elle renvoie des éléments distincts.

On a une liste : [1,1,2,3,2,2,4,5,6,2,1]. La liste comporte de nombreux doublons que nous devons supprimer et récupérer uniquement les éléments distincts. La liste est remise au set() fonction intégrée. Later la liste finale est affichée à l'aide du list() fonction intégrée, comme le montre l’exemple ci-dessous.


Le résultat que nous obtenons est constitué d’éléments distincts où tous les éléments en double sont éliminés.
Exemple

my_list = [1,1,2,3,2,2,4,5,6,2,1]
my_final_list = set(my_list)
print(list(my_final_list))

Sortie :

[1, 2, 3, 4, 5, 6]

Méthode 2) Utilisation de la liste temporaire

Pour supprimer les doublons d'un élément donné list, vous pouvez utiliser une liste temporaire vide. Pour cela, vous devrez d’abord parcourir la liste contenant des doublons et ajouter les éléments uniques à la liste temporaire. Later la liste temporaire est affectée à la liste principale.

Exemple
Voici un exemple fonctionnel utilisant une liste temporaire.

my_list = [1, 2, 3, 1, 2, 4, 5, 4 ,6, 2]
print("List Before ", my_list)
temp_list = []

for i in my_list:
    if i not in temp_list:
        temp_list.append(i)

my_list = temp_list

print("List After removing duplicates ", my_list)

Sortie :

List Before  [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]
List After removing duplicates  [1, 2, 3, 4, 5, 6]

Méthode 3) Utiliser Dict

Nous pouvons supprimer les doublons de la liste donnée en important OrderedDict issus des collections. Il est disponible à partir de python2.7. OrderedDict se charge de vous restituer les éléments distincts dans un ordre dans lequel la clé est présente.

Utilisons une liste et utilisons fromkeys() méthode disponible dans OrderedDict pour obtenir les éléments uniques de la liste.

Pour utiliser OrderedDict.fromkey() méthode, vous devez importer OrderedDict à partir de collections, comme indiqué ci-dessous :

from collections import OrderedDict

Voici un exemple pour supprimer les doublons en utilisant OrderedDict.fromkeys() méthode.

Exemple

from collections import OrderedDict

my_list = ['a','x','a','y','a','b','b','c']

my_final_list = OrderedDict.fromkeys(my_list)

print(list(my_final_list))

Sortie :

['a', 'x', 'y', 'b', 'c']

Depuis Python 3.5+, nous pouvons utiliser le standard dict.fromkeys() pour obtenir les éléments distincts de la liste. Le dict.fromkeys() Les méthodes renvoient des clés uniques et aident à éliminer les valeurs en double.

Un exemple qui montre le fonctionnement de dict.fromkeys() sur une liste pour donner les éléments uniques est la suivante :

Exemple

my_list = ['a','x','a','y','a','b','b','c']
my_final_list = dict.fromkeys(my_list)
print(list(my_final_list))

Sortie :

['a', 'x', 'y', 'b', 'c']

Méthode 4) Utilisation de la boucle for

En utilisant boucle for, nous allons parcourir la liste des éléments pour supprimer les doublons.

Initialisez d'abord le tableau pour qu'il soit vide, c'est-à-dire myFinallist = [].Dans la boucle for, ajoutez une vérification si les éléments de la liste existent dans le tableau myFinallist. Si les éléments n'existent pas, ajoutez l'élément au tableau myFinallist à l'aide de la commande append() méthode.

Ainsi, chaque fois que l'élément en double est rencontré, il sera déjà présent dans le tableau myFinallist et ne sera pas inséré. Vérifions maintenant la même chose dans l'exemple ci-dessous :

Exemple

my_list = [1,2,2,3,1,4,5,1,2,6]
myFinallist = []
for i in my_list:
    if i not in myFinallist:
myFinallist.append(i)
print(list(myFinallist))

Sortie :

[1, 2, 3, 4, 5, 6]

Méthode 5) Utiliser la compréhension de liste

Les compréhensions de listes sont Python fonctions utilisées pour créer de nouvelles séquences (telles que des listes, des dictionnaires, etc.) à l'aide de séquences déjà créées. Cela vous aide à réduire les boucles plus longues et à rendre votre code plus facile à lire et à maintenir.

Utilisons la compréhension de liste pour supprimer les doublons de la liste donnée.

Exemple

my_list = [1,2,2,3,1,4,5,1,2,6]
my_finallist = []
[my_finallist.append(n) for n in my_list if n not in my_finallist] 
print(my_finallist)

Sortie :

[1, 2, 3, 4, 5, 6]

Méthode 6) Utilisation de la méthode Numpy unique().

Procédé unique() du module Numpy peut nous aider à supprimer les doublons de la liste donnée.

Pour travailler avec le premier module numpy d'importation de Numpy, vous devez suivre ces étapes :

Étape 1) Importer le module Numpy

import numpy as np

Étape 2) Utilisez votre liste avec des doublons dans une méthode unique, comme indiqué ci-dessous. La sortie est reconvertie au format de liste en utilisant tolist() méthode.

myFinalList = np.unique(my_list).tolist()

Étape 3) Enfin, imprimez la liste comme indiqué ci-dessous :

print(myFinalList)

Le code final avec sortie est le suivant :

import numpy as np
my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = np.unique(my_list).tolist()
print(myFinalList)

Sortie :

[1, 2, 3, 4, 5, 6]

Méthode 7) Utilisation des méthodes Pandas

Le module Pandas a un unique() méthode qui nous donnera les éléments uniques de la liste donnée.

Pour travailler avec le module Pandas, vous devez suivre ces étapes :

Étape 1) Module d'importation de pandas

import pandas as pd

Étape 2) Utilisez votre liste avec des doublons à l'intérieur unique() méthode comme indiqué ci-dessous :

myFinalList = pd.unique(my_list).tolist()

Étape 3) Imprimez la liste comme indiqué ci-dessous :

print(myFinalList)

Le code final avec sortie est le suivant :

import pandas as pd

my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = pd.unique(my_list).tolist()
print(myFinalList)

Sortie :

[1, 2, 3, 4, 5, 6]

Méthode 8) Utilisation d'enumerate() et de la compréhension de liste

Ici, la combinaison de la compréhension de liste et de l'énumération pour supprimer les éléments en double. Enumerate renvoie un objet avec un compteur pour chaque élément de la liste. Par exemple (0,1), (1,2) etc. Ici, la première valeur est l'index et la deuxième valeur est l'élément de liste. W

Chaque élément est vérifié s'il existe dans la liste, et si c'est le cas, il est supprimé de la liste.

Exemple

my_list = [1,2,2,3,1,4,5,1,2,6]
my_finallist = [i for j, i in enumerate(my_list) if i not in my_list[:j]] 
print(list(my_finallist))

Sortie :

[1, 2, 3, 4, 5, 6]

Résumé

  • Pour supprimer les doublons d'une liste, vous pouvez utiliser la fonction intégrée set(). La spécialité du set() La méthode est qu’elle renvoie des éléments distincts.
  • Vous pouvez supprimer les doublons de la liste donnée en important OrderedDictfrom collections. Il est disponible à partir de python2.7. OrderedDictdict se charge de vous restituer les éléments distincts dans l'ordre dans lequel la clé est présente.
  • Vous pouvez utiliser une boucle for pour parcourir la liste des éléments pour supprimer les doublons.
  • Procédé unique() du module Numpy peut nous aider à supprimer les doublons de la liste donnée.
  • Le module Pandas a un unique() méthode qui nous donnera les éléments uniques de la liste donnée.
  • La combinaison de la compréhension de liste et de l'énumération est utilisée pour supprimer les éléments en double de la liste. Enumerate renvoie un objet avec un compteur pour chaque élément de la liste.