Dies ist mein erstes Mal eine Frage zu Stackoverflow. Ich habe ziemlich viel im Internet gesucht, aber nicht gefunden, was ich will. Meine Frage ist, wie man die maximale Länge aufeinanderfolgender wiederholter Zahlen (oder Elemente im Allgemeinen) in einer Liste mit Python findet. Ich schrieb die folgende Funktion, die gut funktioniert, aber ich fragte mich, ob es eine bessere Möglichkeit gibt, dies zu tun oder meinen Code zu verbessern. Danke vielmals!finden Sie die maximale Länge der aufeinander folgenden wiederholten Zahlen in einer Liste (Python)
def longest(roll):
'''Return the maximum length of consecutive repeated elements in a list.'''
i = 0
M = 0 # The maximum length
while 0 <= i < len(roll):
c = 1 # Temporarily record the length of consecutive elements
for j in range(i+1, len(roll)):
if roll[j] != roll[i]:
i = j
break
c += 1
i += 1
if c > M:
M = c
if i == len(roll) - 1:
break
return M
von der maximalen Länge meine ich folgendes:
[1, 1, 2, 2, 2, 4], M = 3 (2-mal wiederholt, 3);
[1, 2, 1, 2, 1], M = 1 (1 und 2 nur einmal wiederholt).
Danke! Sehr schöner Code. Ich habe mich auch gefragt, ob es eine Möglichkeit gibt, dies mit einfachem Python-Code zu tun (ohne Werkzeuge wie itertools zu verwenden). Es scheint eine sehr einfache Frage zu sein, aber ich konnte keinen einfachen Weg finden. Kann ich meinen ursprünglichen Code verbessern? Vielen Dank! –
Wir kommen ein bisschen zurück zu dir. Von Kopf bis Fuß ist die Logik Ihres Codes solide, jede andere Verbesserung ist bestenfalls trivial. Aber lassen Sie mich einen Fehler machen. :) – Manhattan