Aufeinanderfolgende Zahlen in einer Liste identifizieren
Die Aufgabe besteht darin, eine Liste in Gruppen aufeinanderfolgender Zahlen zu unterteilen. Jede Gruppe sollte nur fortlaufende Nummern enthalten. Die Ausgabe muss einzelne Zahlen beibehalten und darf sie nicht zu Bereichen kombinieren.
Lösung:
In Python können Sie die integrierte Groupby-Funktion zusammen mit einem benutzerdefinierten Schlüssel verwenden zu erreichen dies:
from itertools import groupby from operator import itemgetter 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])
Erklärung:
Beispielausgabe:
data = [2, 3, 4, 5, 12, 13, 14, 15, 16, 17, 20] ranges = [xrange(2, 5), xrange(12, 17), 20]
Das obige ist der detaillierte Inhalt vonWie identifiziere und gruppiere ich aufeinanderfolgende Zahlen in einer Python-Liste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!