Élimination des éléments consécutifs en double en Python
En Python, la tâche d'élimination des éléments consécutifs en double d'une liste peut être abordée de plusieurs manières. Une approche consiste à parcourir la liste et à supprimer les éléments adjacents ayant la même valeur. Cependant, cette méthode peut devenir lourde lorsqu'il s'agit de longues listes.
Pour des solutions plus efficaces et élégantes, nous pouvons exploiter les fonctions et bibliothèques intégrées de Python. En utilisant itertools.groupby, nous pouvons regrouper les éléments en double consécutifs et manipuler le générateur résultant en conséquence.
Pour éliminer tous les éléments en double consécutifs, nous devons simplement extraire les clés de l'itérateur groupé.
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)]
Sortie :
[1, 2, 3, 4, 5, 1, 2]
Pour la deuxième partie de la question, qui nécessite d'éliminer uniquement les éléments qui ont des doublons consécutifs, nous pouvons filtrer davantage les éléments groupés itérateur basé sur le nombre d’éléments dans chaque groupe. À l'aide d'une expression génératrice, nous pouvons additionner les éléments pour déterminer s'il y a plus d'un élément dans le groupe.
[k for k, g in groupby(L) if sum(1 for i in g) < 2]
Résultat :
[2, 3, 5, 1, 2]
Cette technique est plus pythonique et plus efficace que à la première tentative. Il exploite les fonctions intégrées de Python pour regrouper et filtrer la liste, ce qui donne une solution concise et lisible.
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!