Maison >développement back-end >Tutoriel Python >Comment puis-je supprimer efficacement les éléments avec des doublons consécutifs, puis supprimer tous les éléments avec des doublons d'une liste Python ?

Comment puis-je supprimer efficacement les éléments avec des doublons consécutifs, puis supprimer tous les éléments avec des doublons d'une liste Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-06 20:32:16386parcourir

How Can I Efficiently Remove Elements with Consecutive Duplicates, and Then Remove All Elements with Any Duplicates, from a Python List?

Identifier et supprimer les doublons des listes en Python

Énoncé du problème :

La question tourne autour du développement d'un programme Python qui peut supprimer efficacement les éléments avec des doublons consécutifs d’une liste donnée. L’approche initiale a réussi à éliminer les éléments en double consécutifs, mais elle n’a pas supprimé les éléments contenant des doublons. Le résultat souhaité est une liste qui exclut entièrement les éléments avec des doublons consécutifs.

Solution :

Pour le problème modifié, une solution plus élégante émerge en utilisant le puissant module itertools de Python et la fonction groupby(). Cette itération basée sur les groupes nous permet de traiter la liste élément par élément, en identifiant les doublons consécutifs.

from itertools import groupby

L = [1,1,1,1,1,1,2,3,4,4,5,1,2]

# Remove elements with consecutive duplicates
result = [key for key, _group in groupby(L)]

# Output: [1, 2, 3, 4, 5, 1, 2]

Cette technique simplifie la tâche en tirant parti des fonctions intégrées de Python et élimine le besoin d'une logique personnalisée.

Filtrage avancé :

Pour affiner davantage le filtrage et exclure entièrement les éléments contenant des doublons, nous pouvons exploiter la fonction sum() et une expression génératrice :

result = [k for k, g in groupby(L) if sum(1 for i in g) < 2]

# Output: [2, 3, 5, 1, 2]

En parcourant chaque groupe et en calculant le nombre d'éléments au sein du groupe, nous pouvons exclure ceux avec plus d'une occurrence.

En conclusion, la fonction groupby() fournit un moyen succinct et efficace pour identifier et supprimer les éléments en double des listes. Sa simplicité et son efficacité en font un outil idéal pour manipuler des données en Python.

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