Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich aufeinanderfolgende Nummerngruppen in einer Python-Liste effizient identifizieren?

Wie kann ich aufeinanderfolgende Nummerngruppen in einer Python-Liste effizient identifizieren?

Patricia Arquette
Freigeben: 2024-12-07 22:21:13
Original
367 Leute haben es durchsucht

How Can I Efficiently Identify Consecutive Number Groups in a Python List?

Aufeinanderfolgende Nummerngruppen in einer Liste identifizieren

Wenn man mit der Aufgabe konfrontiert wird, Gruppen aufeinanderfolgender Nummern in einer Liste zu identifizieren, gibt es mehrere Ansätze zu berücksichtigen.

Integrierte Python-Funktionalität

Python stellt für diese Aufgabe ein leistungsstarkes Werkzeug bereit: die Funktion groupby(). Mithilfe dieser Funktion können wir Elemente anhand der Differenz zwischen ihrem Index und ihrem Wert kategorisieren. Beispielsweise würde die Funktion „groupby()“ in der Liste [2, 3, 4, 5, 12, 13, 14, 15, 16, 17] die folgenden Gruppen ausgeben:

[(2, [2, 3, 4, 5]), (12, [12, 13, 14, 15, 16, 17])]
Nach dem Login kopieren

Hier: Jede Gruppe besteht aus Elementen, deren Index um den gleichen Betrag von ihrem Wert abweicht und fortlaufende Nummern angibt.

Benutzerdefiniert Funktion

Ein alternativer Ansatz besteht darin, eine benutzerdefinierte Funktion zu erstellen. Eine Implementierung ist unten angegeben:

ranges = []
for key, group in groupby(enumerate(data), lambda (index, item): index - item):
    group = map(itemgetter(1), group)
    if len(group) > 1:
        ranges.append(xrange(group[0], group[-1]))
    else:
        ranges.append(group[0])
Nach dem Login kopieren

Diese Funktion generiert eine Liste von Tupeln, wobei jedes Tupel eine fortlaufende Zahlengruppe darstellt. Für die Eingabe [2, 3, 4, 5, 12, 13, 14, 15, 16, 17] wäre die Ausgabe:

[(2, 5), (12, 17), 20]
Nach dem Login kopieren

Beachten Sie, dass einzelne Zahlen als einzelne Elemente zurückgegeben werden und nicht Bereiche.

Das obige ist der detaillierte Inhalt vonWie kann ich aufeinanderfolgende Nummerngruppen in einer Python-Liste effizient identifizieren?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage