Durchlaufen Sie die Liste ab einem bestimmten Element
Sagen, ich habe eine Liste:
l = [1, 2, 3, 4]
Und ich will zu Durchlaufen. Normalerweise würde so etwas tun,
1, 2, 3, 4, 1, 2, 3, 4, 1, 2...
Ich möchte in der Lage sein, um zu einem bestimmten Punkt im Zyklus, nicht unbedingt ein index, aber vielleicht passender ein element. Sagen, dass ich starten wollte, bei was auch immer element in der Liste ==4
dann wird der Ausgang sein würde,
4, 1, 2, 3, 4, 1, 2, 3, 4, 1...
Wie kann ich dies erreichen?
InformationsquelleAutor der Frage john | 2012-01-20
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Blick auf itertools Modul. Es bietet alle notwendigen Funktionen.
Ausgabe:
InformationsquelleAutor der Antwort ovgolovin
Arithmetische
mod
Betreiber. Angenommen, Sie sind ab der positionk
dannk
aktualisiert werden sollte, wie diese:Wenn Sie anfangen wollen, von einem bestimmten element, nicht indiziert werden, können Sie immer nachschauen können, wie
k = l.index(x)
wobei x für den gewünschten Artikel.InformationsquelleAutor der Antwort 0605002
also der iterator, die Sie wollen, ist:
InformationsquelleAutor der Antwort eumiro
Ich bin nicht so ein großer fan der Module zu importieren, wenn Sie Dinge tun können, indem Sie Ihre eigenen in ein paar Zeilen. Hier ist meine Lösung ohne Importe:
Wird das Ergebnis einer (unendlichen) iterator Schleife Ihrer Liste. Um das nächste element in den Zyklus müssen Sie die
next
Aussage:InformationsquelleAutor der Antwort juliomalegria
Hm, http://docs.python.org/library/itertools.html#itertools.cycle nicht so ein start-element.
Vielleicht haben Sie einfach starten Sie den Zyklus und trotzdem fallen die ersten Elemente, die Sie nicht mögen.
InformationsquelleAutor der Antwort
Anderen seltsamen option ist, dass der Radsport durch Listen erreicht werden kann rückwärts. Zum Beispiel:
InformationsquelleAutor der Antwort Daniel Klug