Перебирать список, начиная с определенного элемента

Скажем, у меня есть список:

l = [1, 2, 3, 4]

И я хочу его просмотреть. Обычно это делается примерно так:

1, 2, 3, 4, 1, 2, 3, 4, 1, 2...

Я хочу иметь возможность начинать с определенной точки цикла, не обязательно с индекса, но, возможно, сопоставления с элементом. Скажем, я хотел начать с любого элемента в списке == 4 , тогда вывод будет:

4, 1, 2, 3, 4, 1, 2, 3, 4, 1...

Как я могу это сделать?

19
задан john 20 January 2012 в 11:30
поделиться

1 ответ

Может использовать что-то вроде этого:

def my_cycle(data, start=None):
  k = 0 if not start else start
  while True:
    yield data[k]
    k = (k + 1) % len(data)

Тогда выполненный:

for val in my_cycle([0,1,2,3], 2):
  print(val)

По существу то же как один из предыдущих ответов. Мое плохое.

0
ответ дан 30 November 2019 в 03:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: