如果条件满足,则获取for循环以重新启动

时间:2017-02-25 20:57:59

标签: python for-loop

有没有办法让循环在循环中的任何一点再次启动? 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

2 个答案:

答案 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