Eliminieren aufeinanderfolgender doppelter Elemente in Python
In Python kann die Aufgabe, aufeinanderfolgende doppelte Elemente aus einer Liste zu entfernen, auf verschiedene Arten angegangen werden. Ein Ansatz besteht darin, die Liste zu durchlaufen und benachbarte Elemente mit demselben Wert zu löschen. Allerdings kann diese Methode beim Umgang mit langen Listen umständlich werden.
Für effizientere und elegantere Lösungen können wir die integrierten Funktionen und Bibliotheken von Python nutzen. Mit itertools.groupby können wir aufeinanderfolgende doppelte Elemente gruppieren und den resultierenden Generator entsprechend manipulieren.
Um alle aufeinanderfolgenden doppelten Elemente zu entfernen, müssen wir lediglich die Schlüssel aus dem gruppierten Iterator extrahieren.
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)]
Ausgabe:
[1, 2, 3, 4, 5, 1, 2]
Für den zweiten Teil der Frage, der nur die Eliminierung der Elemente erfordert, die aufeinanderfolgende Duplikate haben, können wir die Gruppierung weiter filtern Iterator basierend auf der Anzahl der Elemente in jeder Gruppe. Mithilfe eines Generatorausdrucks können wir die Elemente summieren, um zu bestimmen, ob mehr als ein Element in der Gruppe vorhanden ist.
[k for k, g in groupby(L) if sum(1 for i in g) < 2]
Ausgabe:
[2, 3, 5, 1, 2]
Diese Technik ist im Vergleich pythonischer und effizienter zum ersten Versuch. Es nutzt die integrierten Funktionen von Python, um die Liste zu gruppieren und zu filtern, was zu einer prägnanten und lesbaren Lösung führt.
Das obige ist der detaillierte Inhalt vonWie kann ich aufeinanderfolgende doppelte Elemente in Python effizient entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!