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
Freigeben: 2024-12-05 17:37:11
Original
452 Leute haben es durchsucht

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)]
Nach dem Login kopieren

Ausgabe:

[1, 2, 3, 4, 5, 1, 2]
Nach dem Login kopieren

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]
Nach dem Login kopieren

Ausgabe:

[2, 3, 5, 1, 2]
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage