如果python中的字典中至少有一个键存在,那么更好的方法是什么?

die*_*us9 0 python dictionary list

我需要检查dict中是否存在至少一个键列表,我的意思是,我有一个键列表:

keys = ['key1','key2','key3','key4','key5']
dict_ = {'key1': 1,'key2':2}
# I could do something like
if 'key1' in dict_ or 'key2' in dict_ or 'key3' in dict_:
    print True
Run Code Online (Sandbox Code Playgroud)

但我想知道是否存在一种更加pythonic的方式来做到这一点

And*_*ark 8

使用Python的内置any()函数,它需要一个可迭代的并且如果任何元素为真则返回True,并且当它找到匹配时就像你的链式or检查一样短路.

if any(key in dict_ for key in keys):
    # do stuff
Run Code Online (Sandbox Code Playgroud)

  • 代码使用生成器表达式而不是列表解析来节省内存.生成器表达式`(键中的键dict_中的键)创建一个生成器,它将产生与列表推导相同的值,并且当生成器表达式是函数的唯一参数时,您不需要额外的括号. (2认同)