Ich habe eine Liste, und ich schaue, um durch zu gehen. Das Problem ist, dass ich nicht daran interessiert bin, Elemente einzeln nacheinander durchzulaufen, sondern gleichzeitig durch Elemente auf einmal zu wechseln.`Itertools.cycle`: Pythisch am meisten, um mehrere Schritte zu machen?
Zum Beispiel, wenn meine Liste l = ["a", "b", "c", "d"]
ist, dann würde ich die folgende Ausgabe will:
>>> from itertools import cycle
>>> gen = cycle(l)
>>> next(gen, 4) # I know this doesn't work -- take as pseudocode
d
>>> next(gen, 3)
c
Ich weiß, dass ich dies mit so etwas wie erreichen kann:
def generator_step(g, n):
for item in range(n):
next(g)
return item
Soll das 4 Schritte sein? Das sind keine 4 Schritte beim zweiten Anruf. – user2357112
@ user2357112 behoben, sorry – Newb
Sie möchten vielleicht nur eine Liste und einen Index für konstante Zeitsprünge pflegen. Sie können das nicht mit einem itertools.cycle-Iterator bekommen. ("collections.deque" und seine "rotate" -Methode könnten ebenfalls eine Überlegung wert sein, aber das ist keine konstante Zeit.) – user2357112