Ich habe eine Liste, die nur ganze Zahlen enthält, und ich möchte überprüfen, ob alle Zahlen in der Liste aufeinanderfolgen (die Reihenfolge der Zahlen ist egal).Test für fortlaufende Nummern in der Liste
Wenn wiederholte Elemente vorhanden sind, sollte die Funktion False zurückgeben.
Hier ist mein Versuch, dieses Problem zu lösen:
def isconsecutive(lst):
"""
Returns True if all numbers in lst can be ordered consecutively, and False otherwise
"""
if len(set(lst)) == len(lst) and max(lst) - min(lst) == len(lst) - 1:
return True
else:
return False
Zum Beispiel:
l = [-2,-3,-1,0,1,3,2,5,4]
print(isconsecutive(l))
True
Ist dies der beste Weg, dies zu tun?
Ihre Beispielliste ist nicht aufeinander folgend - es kann in aufeinanderfolgenden Ganzzahlen neu geordnet werden, ist das was du meinst? Können wir die Liste neu anordnen? –
@DanielleM. Die Reihenfolge ist egal – MMF
Sieht gut aus, aber Sie sollten die if entfernen und nur den gesamten Ausdruck zurückgeben –