Maison > développement back-end > Tutoriel Python > Comment pouvons-nous rechercher et supprimer efficacement les éléments en double d'une liste ?

Comment pouvons-nous rechercher et supprimer efficacement les éléments en double d'une liste ?

DDD
Libérer: 2025-01-01 03:47:09
original
478 Les gens l'ont consulté

How Can We Efficiently Find and Remove Duplicate Elements from a List?

Recherche de doublons dans une liste

Étant donné une liste d'entiers, l'objectif est d'identifier et d'isoler les éléments en double dans la liste. Pour y parvenir, nous pouvons utiliser diverses techniques :

Utilisation de la structure de données d'ensemble

Un ensemble est une collection non ordonnée d'éléments uniques. Pour supprimer les doublons d'une liste, nous pouvons la convertir en un ensemble à l'aide de la fonction set(a). L'ensemble résultant ne contiendra que les éléments distincts de la liste d'origine.

Identification et impression des doublons

Pour identifier et imprimer les doublons, nous pouvons utiliser le module Compteur de la bibliothèque des collections. Il fournit une méthode pratique pour compter les occurrences de chaque élément dans une liste. Grâce à une compréhension, nous pouvons extraire les éléments qui apparaissent plus d'une fois :

from collections import Counter

a = [1,2,3,2,1,5,6,5,5,5]
print([item for item, count in Counter(a).items() if count > 1])

# Output: [1, 2, 5]
Copier après la connexion

Suppression efficace des doublons

Pour une suppression efficace des doublons, une simple boucle peut être utilisé pour maintenir un ensemble d’éléments vus. Lorsqu'on rencontre un nouvel élément, il est ajouté à l'ensemble, indiquant qu'il a été vu. Si un élément est déjà dans l'ensemble, il est considéré comme un doublon et peut être supprimé.

seen = set()
no_dupes = []

for x in a:
    if x not in seen:
        no_dupes.append(x)
        seen.add(x)
Copier après la connexion

Suppression concise des doublons

Une autre approche concise de la suppression des doublons consiste à utiliser une compréhension de liste :

seen = set()
no_dupes = [x for x in a if x not in seen and not seen.add(x)]
Copier après la connexion

Gestion des éléments non hachables Éléments

Si les éléments de la liste ne sont pas hachables (comme les listes), les ensembles et les dictionnaires ne peuvent pas être utilisés. Dans de tels cas, une solution temporelle quadratique doit être utilisée, où chaque élément est comparé à 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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal