Как я могу сделать это в Python:как перезапустить цикл for for python?
x = [1,2,3,4,5,6]
for i in x:
if i == 4:
-restart the loop from beginning-
else:
print i
Так вот он будет печатать до 4, затем повторите цикл
Как я могу сделать это в Python:как перезапустить цикл for for python?
x = [1,2,3,4,5,6]
for i in x:
if i == 4:
-restart the loop from beginning-
else:
print i
Так вот он будет печатать до 4, затем повторите цикл
Что об этом:
x = [1,2,3,4,5,6]
restart = True
while restart:
for i in x:
# add any exit condition!
# if foo == bar:
# restart = False
# break
if i == 4:
break
else:
print i
Нечто подобное возможно? Но это будет цикл навсегда ...
x = [ ..... ]
restart = True
while restart:
for i in x:
if i == 4:
restart = True
break
restart = False
print i
Я хотел бы использовать рекурсивную функцию для этого
def fun(x):
for i in x:
if i == 4:
fun(x)
else:
print i
return;
x = [1,2,3,4,5,6]
fun(x)
Вы очень быстро получите 'RuntimeError' за превышение максимального предела рекурсии. По умолчанию используется значение «1000». –
Сколько раз автор хочет повторить? – freude
Рекурсивные функции опасны для высоких значений рекурсии и очень сложно интегрировать условия выхода. –
Вы не можете напрямую. Используйте itertools.cycle
for idx, val in enumerate(itertools.cycle(range(4))):
print v
if idx>20:
break
IDX используется для разрыва infiniteloop
Просто заверните в то время как заявление.
while True:
restart = False
for i in x:
if i == 4:
restart = True
break
else:
print i
if not restart:
break
с петлей в то время:
x=[1,2,3,4,5,6]
i=0
while i<len(x):
if x[i] == 4:
i=0
continue
else:
print x[i]
i+=1
что вы имеете в виду под 'повторить'? вы имеете в виду печать (1,2,3,4,1,2,3,4) и т. д.? –
Я бы использовал рекурсивную функцию, определяющую цикл как функцию – freude
Я бы использовал ['itertools.cycle'] (http://docs.python.org/2/library/itertools.html#itertools.cycle). – kojiro