你能在 python 中的字典上使用 while 循环吗?

新手上路,请多包涵

如果我字典中某个键的值确实满足条件,我想跳出循环并将属性设置为 True

到目前为止我正在做的是:

 fooBar = False
for key, value in my_dict.items():
    if (condition):
        fooBar = True

我需要使用 for 循环并遍历字典中的所有项目,还是可以使用 while 循环?

原文由 Nicolae Stroncea 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 715
2 个回答

您不必继续遍历整个字典 - 您可以 break 退出循环:

 fooBar = False
for key, value in my_dict.items():
    if (condition):
        fooBar = True
        break # Here!

原文由 Mureinik 发布,翻译遵循 CC BY-SA 3.0 许可协议

pythonic 变体将使用 any

 any(condition for k, v in my_dict.items())

例如,如果您想检查是否有任何一对 (key, value) 的总和大于 10:

 >>> my_dict = {1: 4, 5: 6}
>>> any(k + v > 10 for k, v in my_dict.items())
True
>>> any(k + v > 100 for k, v in my_dict.items())
False

如文档中所述, any 等同于:

 def any(iterable):
    for element in iterable:
        if element:
            return True
    return False

这很像你的代码写成一个函数。

原文由 Eric Duminil 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题