Maison >développement back-end >Tutoriel Python >Comment supprimer efficacement les doublons d'une liste Python tout en maintenant l'ordre ?
Suppression des doublons dans les listes
En Python, rechercher les doublons dans une liste et renvoyer une nouvelle liste sans eux est une tâche courante. Il existe plusieurs approches pour y parvenir.
Utilisation d'ensembles
Les ensembles sont des collections non ordonnées d'objets distincts. Ils constituent un moyen efficace de supprimer les doublons. Pour créer un ensemble à partir d’une liste, transmettez-le simplement à la fonction set(). Pour le reconvertir en liste, utilisez la fonction list(). Cette méthode ne préserve cependant pas l'ordre d'origine des éléments.
t = [1, 2, 3, 1, 2, 3, 5, 6, 7, 8] list(set(t)) # [1, 2, 3, 5, 6, 7, 8]
Maintien de l'ordre
Si la préservation de l'ordre d'origine est cruciale, les collections.OrderedDict module peut être utilisé. OrderedDict conserve l'ordre d'insertion des éléments. Convertissez la liste en OrderedDict, puis revenez en liste pour préserver l'ordre.
from collections import OrderedDict list(OrderedDict.fromkeys(t)) # [1, 2, 3, 5, 6, 7, 8]
Utilisation de dictionnaires dans Python 3.7
Dans Python 3.7 et versions ultérieures, des dictionnaires standards gère également l’ordre d’insertion. Ainsi, vous pouvez utiliser l'approche suivante :
list(dict.fromkeys(t)) # [1, 2, 3, 5, 6, 7, 8]
Considérations
Notez que toutes ces méthodes nécessitent que les éléments de la liste soient hachables (c'est-à-dire immuables) . Si les éléments ne peuvent pas être hachés (par exemple, des listes), une approche plus lente impliquant des comparaisons de boucles imbriquées est nécessaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!