以下面的代码为例,以2 for for循环。
for xy in set:
for name in dict:
if xy == name:
print("Yay")
我想知道的是,如果发现if语句是真的,它会继续迭代'dict'还是会回到第一个for循环并进入下一次迭代?我无法相信我使用python多久了,我不知道这个简单问题的答案。
谢谢!
答案 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")
答案 2 :(得分:2)
它将继续迭代dict
。如果您不想要此行为,请尝试以下操作:
for xy in set:
for name in dict:
if xy == name:
print("Yay")
break