有没有办法让循环在循环中的任何一点再次启动? Say line的长度为3。如果满足if语句并且我的索引递增,我希望所有内容都在第一行的值处再次开始检查。 (注意这整个事情是一段时间True循环的一部分)。
for line in library:
if message[index:index + len(line)-2] == line[2:]:
ans += line[0]
index += len(line)-2 + 1
答案 0 :(得分:0)
我认为您需要while True
之上的其他for loop
。
例如,除非存在中断条件,否则这是一个连续循环
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 == value: # add your message condition
break
您可以将x
替换为您的library
,将i
替换为line
。然后,如果i == 4
添加了重置循环的中断条件,并且确实存在实际中断条件,则将restart
标志设置为False
另一种选择是使用n = 2
之类的循环计数器,然后使用while n < 2:
,然后在条件设置时设置n += 1
,或者在需要重置时设置n = 0
。
答案 1 :(得分:0)
如果我正确读取它,你想在找到匹配时完全重启循环。最简单的方法是跳出for循环,因为你声明你上面有一个while循环,它仍然是True并将重新启动for循环:
for line in library:
if message[index:index + len(line)-2] == line[2:]:
ans += line[0]
index += len(line)-2 + 1
break