例如,在C ++中,我可以执行以下操作: -
for (i = 0; i < n; i++){
if(...){ //some condition
i = 0;
}
}
这将有效地重置循环,即在不引入第二循环的情况下启动循环
对于Python -
for x in a: # 'a' is a list
if someCondition == True:
# do something
基本上在循环过程中,'a'的长度可能会改变。所以每次'a'的长度发生变化时,我都想开始循环。我该怎么做呢?
答案 0 :(得分:4)
您可以定义自己的倒带器,可以倒带:
"./node_modules/jquery/dist/jquery.js",
"./node_modules/tether/dist/js/tether.js",
"./node_modules/bootstrap/dist/js/bootstrap.js"
像这样使用:
class ListIterator:
def __init__(self, ls):
self.ls = ls
self.idx = 0
def __iter__(self):
return self
def rewind(self):
self.idx = 0
def __next__(self):
try:
return self.ls[self.idx]
except IndexError:
raise StopIteration
finally:
self.idx += 1
答案 1 :(得分:4)
不使用for
,而是使用while
循环手动执行:
n = len(a)
i = 0
while i < n:
...
if someCondition:
n = len(a)
i = 0
continue
i+=1
编辑 - 如果你只是追加到最后,你真的需要重新开始吗?您可以通过直接比较i
到len(a)
或在循环中调用n=len(a)
来进一步移动终点