Maison >développement back-end >Tutoriel Python >Comment pouvons-nous éliminer les éléments en double consécutifs d'une liste en Python ?

Comment pouvons-nous éliminer les éléments en double consécutifs d'une liste en Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-01 01:12:11327parcourir

How Can We Eliminate Consecutive Duplicate Elements from a List in Python?

Élimination des doublons consécutifs dans les éléments de la liste : au-delà de la simple suppression jusqu'à l'élimination des éléments

Alors que l'approche initiale a réussi à supprimer les doublons consécutifs des éléments de la liste, il n’a pas réussi à éliminer les éléments eux-mêmes. Pour y parvenir, une stratégie plus raffinée est nécessaire.

La solution fournie via itertools.groupby() offre une approche efficace. Il regroupe les éléments consécutifs et renvoie la clé de chaque groupe. En sélectionnant les clés, on peut récupérer les éléments uniques dans la liste :

L = [1,1,1,1,1,1,2,3,4,4,5,1,2]
from itertools import groupby
[key for key, _group in groupby(L)]

Pour la deuxième partie de la question, où le but est d'éliminer les éléments avec des doublons consécutifs, le code modifié au sein du groupby( ) répond à cette exigence :

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

Cette approche utilise une expression génératrice pour calculer le nombre d'éléments dans chaque groupe. En sélectionnant des clés pour les groupes de moins de deux éléments, nous éliminons efficacement les doublons consécutifs. Le résultat est une solution concise et élégante.

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