Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich aufeinanderfolgende doppelte Elemente in Python effizient entfernen?

Wie kann ich aufeinanderfolgende doppelte Elemente in Python effizient entfernen?

DDD
DDDOriginal
2024-12-05 17:37:11453Durchsuche

How Can I Efficiently Remove Consecutive Duplicate Elements in Python?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn