da ich gerade vor dem Problem stehe, in einer Sequenz von aufsteigenden Integer-Werten Lücken zu finden, habe ich überlegt, wie ich das in Python einfach umsetzen kann.
Die einfachste Art ist es wohl, die Lücken (=fehlende Zahlen) über Mengen zu finden:
Code: Alles auswählen
data = [1, 2, 4, 5]
set(range(1, data[-1] + 1)) - set(data)
> set([3])
Dafür fiel mir folgendes ein:
Code: Alles auswählen
def count_gaps(data):
return sum(v > 1 for v in starmap(sub, (
zip_longest(data, chain([0], data), fillvalue=data[-1]))))
count_gaps((1,2,4,6,7,10))
> 3