Suppression des doublons dans les listes
Identifier et éliminer les éléments en double des listes est une tâche fondamentale en programmation. Cet article explore différentes méthodes pour y parvenir, en tenant compte à la fois de la préservation de l'ordre et de l'efficacité de la solution.
Utiliser des ensembles pour une suppression efficace des doublons
Une méthode simple et efficace L'approche pour supprimer les doublons d'une liste consiste à la convertir en un ensemble. Les ensembles sont des collections non ordonnées d'éléments uniques. En convertissant une liste en ensemble, tous les doublons sont automatiquement supprimés. Pour recréer une liste sans doublons, l'ensemble modifié peut être reconverti en liste à l'aide de la fonction list().
Considérez l'exemple ci-dessous :
t = [1, 2, 3, 1, 2, 3, 5, 6, 7, 8] unique_list = list(set(t))
Le résultat, unique_list, sera être [1, 2, 3, 5, 6, 7, 8], avec tous les doublons supprimés.
Préserver l'ordre avec OrderedDict ou Dictionaries
Si le maintien de l'ordre d'origine des éléments est crucial, les ensembles ne peuvent pas être utilisés car ce sont des collections non ordonnées. Au lieu de cela, on peut s'appuyer sur un OrderedDict ou un dictionnaire pour conserver l'ordre d'insertion.
Utilisation de OrderedDict :
from collections import OrderedDict ordered_unique_list = list(OrderedDict.fromkeys(t))
Utilisation d'un dictionnaire (Python 3.7 ou version ultérieure) :
unique_list = list(dict.fromkeys(t))
Les deux approches renvoient une liste avec les doublons supprimés tout en préservant l'original order.
Considérations relatives aux performances
La conversion d'une liste en un ensemble et de nouveau en une liste est efficace, mais elle peut introduire une surcharge supplémentaire. Si l’ordre n’a pas d’importance, l’utilisation d’un ensemble est généralement privilégiée pour sa rapidité et sa polyvalence. Cependant, si l'ordre doit être conservé, les approches OrderedDict ou dictionnaire offrent une option viable.
Gestion des éléments non hachables
Notez que l'ensemble, OrderedDict et Les solutions de dictionnaire nécessitent que les éléments de la liste soient hachables. Pour les éléments non hachables (par exemple, les listes), une approche plus lente utilisant des boucles imbriquées serait nécessaire pour comparer chaque élément avec tous les autres éléments.
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!