你怎么能continue
在 Python 中说两个嵌套循环的父循环?
for a in b:
for c in d:
for e in f:
if somecondition:
<continue the for a in b loop?>
我知道在大多数情况下您可以避免这种情况,但可以在 Python 中完成吗?
你怎么能continue
在 Python 中说两个嵌套循环的父循环?
for a in b:
for c in d:
for e in f:
if somecondition:
<continue the for a in b loop?>
我知道在大多数情况下您可以避免这种情况,但可以在 Python 中完成吗?
我每次都会带5个。
这里有一堆hacky方法来做到这一点:
创建局部函数
for a in b:
def doWork():
for c in d:
for e in f:
if somecondition:
return # <continue the for a in b loop?>
doWork()
更好的选择是将 doWork 移到其他地方并将其状态作为参数传递。
使用例外
class StopLookingForThings(Exception): pass
for a in b:
try:
for c in d:
for e in f:
if somecondition:
raise StopLookingForThings()
except StopLookingForThings:
pass
from itertools import product
for a in b:
for c, e in product(d, f):
if somecondition:
break
您使用break
打破内部循环并继续父级
for a in b:
for c in d:
if somecondition:
break # go back to parent loop
使用布尔标志
problem = False
for a in b:
for c in d:
if problem:
continue
for e in f:
if somecondition:
problem = True
在这里查看所有答案,这与我的做法完全不同\n 任务:如果嵌套循环中的 if 条件为真,则继续执行 while 循环
chars = 'loop|ing'
x,i=10,0
while x>i:
jump = False
for a in chars:
if(a = '|'): jump = True
if(jump==True): continue
lista = ["hello1", "hello2" , "world"]
for index,word in enumerate(lista):
found = False
for i in range(1,3):
if word == "hello"+str(i):
found = True
break
print(index)
if found == True:
continue
if word == "world":
continue
print(index)
现在打印了什么:
>> 1
>> 2
>> 2
这意味着单词 no.1 ( index = 0 ) 首先出现(在 continue 语句之前无法打印某些内容)。单词 no.2 ( index = 1 ) 出现在第二位 (单词 "hello1" 被打印出来但不是其余的) 而单词 no.3 出现在第三位是什么意思是单词 "hello1" 和 "hello2" 设法打印在 for 循环到达第三个单词之前打印。
总而言之,它只是使用 found = False / True 布尔值和 break 语句。
希望能帮助到你!