我要检查密钥是否在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习惯用法,还是我需要抱怨一下然后编写一个实用程序函数?
答案 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)