Im Grunde brauche ich eine Möglichkeit, die Steuerung an den Anfang einer for-Schleife zurückzugeben und den gesamten Iterationsprozess tatsächlich neu zu starten , nachdem eine Aktion ausgeführt wurde, wenn eine bestimmte Bedingung erfüllt ist.
Was ich versuche, ist folgendes:
%Vor%Wenn also ['berry', '||', '||', '||', 'pancake] in der Liste sind, werde ich mit:
enden['berry', '||', 'pancake'] stattdessen.
Danke!
Ich bin mir nicht sicher, was Sie mit "Neustart" meinen. Möchten Sie von vorne beginnen oder einfach die aktuelle Iteration überspringen?
Wenn es Letzteres ist, dann unterstützen for
loops continue
genauso wie while
loops:
Der obige Ausdruck druckt die Zahlen von 0 bis 9 mit Ausnahme von 5.
Wenn Sie davon ausgehen, dass Sie am Anfang der Schleife for
neu beginnen, gibt es keine Möglichkeit, das zu tun, außer "manuell", z. B. indem Sie es in eine while
-Schleife einfügen:
Das obige wird die Zahlen von 0 bis 5 ausgeben, dann von 0 wieder anfangen und so weiter und so weiter (nicht wirklich ein großartiges Beispiel, ich weiß).
eine Aktion, die den gesamten Prozess neu startet
Eine schlechte Art, an einen Algorithmus zu denken.
Sie filtern nur, d. h. entfernen Duplikate.
Und - in Python - ist es am glücklichsten, Kopien zu erstellen, nicht in del
. Im Allgemeinen gibt es sehr wenig Aufruf, del
zu verwenden.
Die unvermeidliche itertools-Version, weil es gerade zu mir kam:
%Vor%Wie Sie sehen können, führt die Beantwortung Ihrer Frage zu einem etwas komplizierten Code. Normalerweise kann ein besserer Weg gefunden werden, weshalb solche Konstrukte nicht in die Sprache eingebaut sind
Wenn Sie sich nicht sicher sind, itertools zu verwenden, sollten Sie stattdessen diese Schleife verwenden. Es ist nicht nur einfacher zu folgen als der Neustart für die Schleife, es ist auch effizienter, weil es keine Zeit verschwendet, Elemente, die bereits übergeben wurden, erneut zu überprüfen.
%Vor%Und das wiederholt sich übrigens von Entfernen Sie benachbarte Duplikate Elemente aus einer Liste