У меня есть список, и я ищу для этого цикл. Беда в том, что меня не интересует циклическое перемещение по элементам по одному, но я хочу циклически перемещаться по элементам n
за раз.`Itertools.cycle`: самый pythonic способ сделать несколько шагов?
Например, если мой список l = ["a", "b", "c", "d"]
, то я хотел бы следующий вывод:
>>> from itertools import cycle
>>> gen = cycle(l)
>>> next(gen, 4) # I know this doesn't work -- take as pseudocode
d
>>> next(gen, 3)
c
Я знаю, что я могу сделать это с чем-то вроде:
def generator_step(g, n):
for item in range(n):
next(g)
return item
Это должно быть 4 шага? Это не 4 шага во втором вызове. – user2357112
@ user2357112 исправлено, извините – Newb
Возможно, вы захотите просто сохранить список и индекс для прыжков в реальном времени. Вы не можете получить это с помощью итератора 'itertools.cycle'. ('collections.deque' и его метод' rotate' также заслуживают рассмотрения, но это не постоянное время.) – user2357112