如何在python循环中进入循环的下一次迭代?

时间:2014-01-29 17:01:04

标签: python

以下面的代码为例,以2 for for循环。

for xy in set:
        for name in dict:
            if xy == name:
               print("Yay")

我想知道的是,如果发现if语句是真的,它会继续迭代'dict'还是会回到第一个for循环并进入下一次迭代?我无法相信我使用python多久了,我不知道这个简单问题的答案。

谢谢!

3 个答案:

答案 0 :(得分:5)

它将继续在dict中迭代。如果要跳出内循环,请使用break

你也可以试试。

if any(name in dict for name in set):
    print('Yay')

答案 1 :(得分:4)

它继续遍历dict

如果您希望循环返回到第一个for循环,请使用break statement

for xy in set:
    for name in dict:
        if xy == name:
           print("Yay")
           break

正如Jacob Krall评论的那样,您不需要迭代字典对象来检查密钥(name)是否存在。使用in运算符:

>>> d = {'sam': 'Samuel', 'bob': 'Robert'}
>>> 'bob' in d
True
>>> 'tom' in d
False

for xy in set:
    if name in dict:
        print("Yay")

如果您只想打印Yay一次,请使用set.isdisjoint

if not set.isdisjoint(dict):
    print("Yay")

顺便说一句,请勿使用setdict作为变量名称。它隐藏了内置函数setdict

答案 2 :(得分:2)

它将继续迭代dict。如果您不想要此行为,请尝试以下操作:

for xy in set:
    for name in dict:
        if xy == name:
           print("Yay")
           break