Les listes Python sont incroyablement polyvalentes, mais la gestion efficace des éléments dupliqués est une tâche de programmation courante. Cet article explore deux méthodes efficaces pour supprimer les doublons d’une liste Python : l’utilisation de la fonction intégrée set()
pour la vitesse et l’utilisation de OrderedDict
pour maintenir l’ordre d’origine des éléments.
Table des matières
- Suppression des doublons avec la méthode
set()
- Préservation de l’ordre avec
OrderedDict
- Choisir la meilleure approche
Suppression des doublons avec la méthode set()
La façon la plus rapide de supprimer les doublons est d’utiliser la fonction set()
. Les ensembles sont des collections non ordonnées d’éléments uniques. La conversion d’une liste en un ensemble élimine automatiquement les doublons. Cependant, cette méthode modifie l’ordre d’origine.
my_list = [1, 2, 2, 3, 4, 4, 5, 1]
# Convertir la liste en ensemble pour supprimer les doublons
unique_elements = set(my_list)
# Convertir l'ensemble en liste (l'ordre peut changer)
unique_list = list(unique_elements)
print(f"Liste originale : {my_list}")
print(f"Liste sans doublons : {unique_list}")
Sortie :
Liste originale : [1, 2, 2, 3, 4, 4, 5, 1]
Liste sans doublons : [1, 2, 3, 4, 5]
Notez le changement potentiel dans l’ordre des éléments.
Préservation de l’ordre avec OrderedDict
Pour supprimer les doublons tout en conservant l’ordre d’origine, utilisez OrderedDict
du module collections
. OrderedDict
maintient l’ordre d’insertion.
from collections import OrderedDict
my_list = [1, 2, 2, 3, 4, 4, 5, 1]
# Utiliser OrderedDict pour supprimer les doublons tout en préservant l'ordre
unique_list_ordered = list(OrderedDict.fromkeys(my_list))
print(f"Liste originale : {my_list}")
print(f"Liste sans doublons, ordre préservé : {unique_list_ordered}")
Sortie :
Liste originale : [1, 2, 2, 3, 4, 4, 5, 1]
Liste sans doublons, ordre préservé : [1, 2, 3, 4, 5]
L’ordre est identique à la liste d’entrée.
Choisir la meilleure approche
Si l’ordre n’est pas critique, la méthode set()
offre une vitesse supérieure. Si la préservation de l’ordre d’origine est primordiale, OrderedDict
est le meilleur choix, même si elle peut être légèrement plus lente pour les très grandes listes. Pour la plupart des applications, la différence de performance sera négligeable. Sélectionnez la méthode qui correspond le mieux à vos besoins.