你可以在python的字典上使用while循环吗?

Nic*_*cea 3 python dictionary while-loop

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

我到目前为止所做的是:

fooBar = False
for key, value in my_dict.items():
    if (condition):
        fooBar = True
Run Code Online (Sandbox Code Playgroud)

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

Mur*_*nik 5

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

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

  • 问题是是否可以用 while 循环字典。所提供的答案不是回答这个问题,而是提供了一个替代方案(for+break)。与“for”语句相反,“while”语句背后的一个主要思想是,它允许退出循环而无需控制流跳转(无中断)。 (2认同)

Eri*_*nil 5

pythonic 变体将使用any

any(condition for k, v in my_dict.items())
Run Code Online (Sandbox Code Playgroud)

例如,如果您想检查是否存在(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
Run Code Online (Sandbox Code Playgroud)

如文档中所述,any相当于:

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False
Run Code Online (Sandbox Code Playgroud)

这很像您编写的函数代码。