Comment puis-je dédupliquer efficacement une liste de listes tout en maintenant l'ordre ?

Barbara Streisand
Libérer: 2024-11-23 15:24:25
original
547 Les gens l'ont consulté

How Can I Efficiently Deduplicate a List of Lists While Maintaining Order?

Supprimer efficacement les doublons d'une liste de listes

Étant donné une liste de listes, l'objectif est d'éliminer les éléments en double tout en préservant l'ordre. Bien que la conversion de listes en tuples pour exploiter des ensembles soit simple, elle est inefficace.

Utiliser itertools.groupby()

itertools offre une solution remarquable :

import itertools

k.sort()
list(k for k,_ in itertools.groupby(k))
Copier après la connexion

Cette approche excelle en :

  • Trier les listes pour les aligner doublons.
  • Regroupement des listes en fonction d'éléments, chaque groupe étant représenté par sa première occurrence.
  • Conversion des clés de groupe (doublons supprimés) en liste.

Analyse comparative

Une analyse comparative approfondie révèle que "groupby" surpasse généralement les autres méthodes pour les grandes listes d'entrée. Cependant, pour les petites listes avec peu de doublons, l'approche « boucle d'entrée » peut être légèrement plus rapide.

Optimisation pour des applications spécifiques

Lorsque les performances sont primordiales, pensez à :

  • Analyse heuristique des entrées : Détection des caractéristiques d'entrée pour guider l'algorithme sélection.
  • Structures de données alternatives :Évaluer si un ensemble de tuples serait une représentation plus appropriée pour les données.
  • Modélisation probabiliste :Analyser la répartition des doublons pour optimiser les mesures de performance.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal