Maison >développement back-end >Tutoriel Python >Comment puis-je supprimer efficacement les éléments en double d'une liste Python tout en conservant ou en ignorant l'ordre ?

Comment puis-je supprimer efficacement les éléments en double d'une liste Python tout en conservant ou en ignorant l'ordre ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-30 17:37:13804parcourir

How Can I Efficiently Remove Duplicate Elements from a Python List While Maintaining or Ignoring Order?

Suppression des doublons dans les listes

L'élimination des éléments en double d'une liste est une tâche fréquente en programmation. Ici, nous discutons de diverses méthodes pour détecter les doublons et générer une liste unique.

Approche 1 : Utiliser des ensembles

Les ensembles sont des collections non ordonnées d'objets distincts. Pour créer un ensemble à partir d’une liste, transmettez-le simplement à la fonction set(). Pour inverser l'opération, utilisez la fonction list().

t = [1, 2, 3, 1, 2, 3, 5, 6, 7, 8]
unique_list = list(set(t))  # [1, 2, 3, 5, 6, 7, 8]

Approche 2 : Préserver l'ordre

Si le maintien de l'ordre d'origine est crucial, vous pouvez utiliser les méthodes suivantes :

a. OrderedDict

OrderedDict garde une trace de l'ordre d'insertion des clés. Créer une liste à partir de ses clés préserve l'ordre.

from collections import OrderedDict
unique_list = list(OrderedDict.fromkeys(t))  # [1, 2, 3, 5, 6, 7, 8]

b. Dictionnaire (Python 3.7)

À partir de Python 3.7, les dictionnaires conservent l'ordre d'insertion par défaut.

unique_list = list(dict.fromkeys(t))  # [1, 2, 3, 5, 6, 7, 8]

Remarque sur la hachage

Il est important de noter que le Les techniques susmentionnées nécessitent que vos éléments soient hachables, ce qui signifie qu'ils peuvent être utilisés comme clés de dictionnaire. Les objets non hachables (par exemple, les listes) nécessitent une approche plus lente impliquant des boucles imbriquées.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn