Fre*_*rik 4 python loops if-statement
else
如果if
条件为假,我如何运行整个循环然后转到语句?
输出是:
没有
没有
是
但是如果所有值都不相等,我只希望它跳转到else语句!
test_1 = (255, 200, 100)
test_2 = (200, 200, 100)
test_3 = (500, 50, 200)
dict = {"test_1":test_1,
"test_2":test_2,
"test_3":test_3}
for item in dict:
if dict[item] == (500, 50, 200):
print('Yes')
else:
print('No')
Run Code Online (Sandbox Code Playgroud)
所以基本上输出应该说,因为其中一个值是真的.
是
您需要运行循环,直到找到匹配.你可以使用any
函数来实现这个目的
if any(dict_object[key] == (500, 50, 200) for key in dict_object):
print('Yes')
else:
print('No')
Run Code Online (Sandbox Code Playgroud)
我们将生成器表达式传递给any
函数.生成器表达式从dict中获取每个项目,并检查它是否等于(500, 50, 200)
.在找到匹配的那一刻,any
它将True
立即返回,其余的迭代甚至不会发生.如果没有任何项目匹配(500, 50, 200)
,any
将返回False
并将No
打印.
编辑:在聊天中与OP进行了长时间的讨论之后,他实际上也想知道匹配的项目.因此,更好的解决方案是for..else
像NPE的其他答案一样,像这样
for key in dict_object:
if key.startswith('test_') and dict_object[key] == (500, 50, 200):
# Make use of `dict_object[key]` and `key` here
break
else:
print('No matches')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
96 次 |
最近记录: |