Comment supprimer les doublons d'une liste en Python
Découvrez comment supprimer les doublons d'une liste en Python tout en conservant ou en ignorant l'ordre. Comparez les conversions d'ensembles, les clés de dict et les méthodes de boucle.
Aperçu
Les données en double s'infiltrent fréquemment dans les listes via des extractions de bases de données, des interactions d'utilisateurs ou des agrégations de journaux. La suppression de ces doublons est une étape fondamentale de nettoyage des données qui garantit l’unicité et empêche la redondance dans la logique en aval. Python propose plusieurs techniques pour y parvenir, allant des conversions d'ensembles rapides aux opérations basées sur des boucles qui respectent l'ordre des éléments.
Le moyen le plus rapide et le plus courant d'éliminer les éléments en double consiste à convertir la liste en un « ensemble » à l'aide du constructeur « set() », puis à la reconvertir en liste. Étant donné que les ensembles ne peuvent pas contenir de valeurs en double, ce processus supprime automatiquement les doublons. L’inconvénient de cette approche est que les ensembles ne sont pas ordonnés, ce qui signifie que la séquence originale des éléments est perdue.
Pour conserver l'ordre d'origine des éléments tout en supprimant les doublons,Python 3.7+ propose une solution intelligente utilisant la classe de dictionnaire intégrée : `list(dict.fromkeys(my_list))`. Étant donné que les clés du dictionnaire sont uniques et préservent l’ordre d’insertion, cette méthode déduplique efficacement les éléments tout en gardant la séquence intacte. Pour les critères personnalisés ou les anciennes versions de Python, une boucle manuelle utilisant un ensemble d'assistance pour suivre les éléments vus est également très efficace.
Sortie de code et d'exécution
Ce script illustre la déduplication d'éléments de liste à l'aide d'ensembles, de clés de dictionnaire et de boucles manuelles.
numbers = [2, 1, 2, 3, 1, 4]
# Method 1: Using set() (Unordered)
unique_unordered = list(set(numbers))
print("Unordered unique:", unique_unordered)
# Method 2: Using dict.fromkeys() (Preserves order)
unique_ordered = list(dict.fromkeys(numbers))
print("Ordered unique:", unique_ordered)
# Method 3: Using a loop with a seen helper
seen = set()
unique_loop = []
for item in numbers:
if item not in seen:
seen.add(item)
unique_loop.append(item)
print("Loop unique:", unique_loop)Unordered unique: [1, 2, 3, 4]
Ordered unique: [2, 1, 3, 4]
Loop unique: [2, 1, 3, 4]Mise en œuvre étape par étape
- Convertissez la liste en un ensemble pour supprimer instantanément les doublons à l'aide de set(my_list).
- Utilisez list(dict.fromkeys(my_list)) pour supprimer les doublons tout en préservant l'ordre d'insertion.
- Utilisez un assistant défini dans une boucle pour filtrer les doublons si vous avez besoin d'une validation personnalisée.
Foire aux questions
Quelle méthode est la plus rapide pour les grandes listes ?
La conversion en un ensemble est la plus rapide en raison des optimisations au niveau C, suivie de près par dict.fromkeys().
Comment dédupliquer une liste de dictionnaires ?
Puisque les dictionnaires ne peuvent pas être hachés, vous ne pouvez pas utiliser directement les ensembles. Vous devez utiliser un filtrage de compréhension de boucle ou de liste par ID/clés uniques.
Sujets connexes
Apprenez à trier une liste en Python à l'aide de la méthode sort() et de la fonction sorted(). Découvrez des exemples de tri de clés personnalisé et d’ordre inverse.
Comment utiliser la compréhension de liste en PythonApprenez à utiliser les compréhensions de listes en Python. Écrivez des boucles concises, appliquez des filtres conditionnels et créez des matrices avec une syntaxe visuelle claire.
Ressources Python recommandées
Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.
Listes Python
Apprenez tout sur les listes Python. Découvrez comment créer, découper, modifier et parcourir des tableaux en Python de manière native.
Aide-mémoire sur les méthodes de liste Python
Guide de référence rapide pour les opérations de liste Python. Maîtrisez l’ajout, l’insertion, la suppression, le tri et le découpage d’éléments.
Python vs JavaScript : quel langage de programmation est le meilleur ?
Une comparaison complète entre Python et JavaScript. Explorez les différences de syntaxe, les performances, les cas d'utilisation (backend et frontend) et des exemples de codage.