如何在 python 中重新启动“for”循环? [复制]
Posted
技术标签:
【中文标题】如何在 python 中重新启动“for”循环? [复制]【英文标题】:how to restart "for" loop in python ? [duplicate] 【发布时间】:2014-01-10 14:41:14 【问题描述】:如何在 python 中做到这一点:
x = [1,2,3,4,5,6]
for i in x:
if i == 4:
-restart the loop from beginning-
else:
print i
所以这里它会打印到 4 然后重复循环
【问题讨论】:
“重复”是什么意思?您是说打印 (1,2,3,4,1,2,3,4) 等吗? 我会使用递归函数将循环定义为函数 我会使用itertools.cycle
。
看看this answer,第二个选项
这样做的目的是什么?为什么不直接做while True: for i in range(1, 5):
?
【参考方案1】:
这个呢:
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
【讨论】:
也可以把print i
放在if
语句之前,去掉else
【参考方案2】:
你不能直接。使用 itertools.cycle
for idx, val in enumerate(itertools.cycle(range(4))):
print v
if idx>20:
break
idx 用于打破无限循环
【讨论】:
【参考方案3】:也许是这样的?但它会永远循环......
x = [ ..... ]
restart = True
while restart:
for i in x:
if i == 4:
restart = True
break
restart = False
print i
【讨论】:
【参考方案4】:只需要一个while语句。
while True:
restart = False
for i in x:
if i == 4:
restart = True
break
else:
print i
if not restart:
break
【讨论】:
【参考方案5】:带有一个while循环:
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
【讨论】:
【参考方案6】:我会为此使用递归函数
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以上是关于如何在 python 中重新启动“for”循环? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
在 Activity 内部,如何暂停 for 循环以调用片段,然后在按钮单击片段后恢复循环以重新开始