是否有Python习语来确定键集是否在字典对象(字典)中?

时间:2019-06-05 18:59:15

标签: python

我要检查密钥是否在dict中存在。

我可以想到几种方法:

# (1) using 'in'
if 'my_key' in my_dict.keys() and 'my_other_key' in my_dict.keys():
    ...

# (2) using set.subset
if set(('my_key', 'my_other_key')).issubset(set(my_dict.keys()))
    ...

# (3) try-except
try:
    ... # do something with my_dict['a_key'] and my_dict['my_other_key']
except KeyError:
    pass

这些内容都不是特别直观的阅读方式,尤其是(2)如果需要测试多个关键字名称,同时仍要符合PEP 8行长80。

我想要的是类似的东西

if my_dict.keys() contains (
        'key1',
        'key2',
        'key3'):
    ...

是否存在类似于上述的python习惯用法,还是我需要抱怨一下然后编写一个实用程序函数?

1 个答案:

答案 0 :(得分:4)

如果要检查它们是否都是成员,请命名一组必要的密钥set_of_keys

if all(key in my_dict.keys() for key in set_of_keys)

实际上,不需要使用.keys()进行成员资格检查字典的方式。您只需检查

if all(key in my_dict for key in set_of_keys)