使用字典视图和集:
missing = set(required) - some_dict.viewkeys()
optional_present = some_dict.viewkeys() & optional
Run Code Online (Sandbox Code Playgroud)
像字典一样,集合使得成员资格测试变得便宜和快速,并且设置操作使得测试项目是否存在变得容易.你真的想制作required并optional开始使用.
例如,集合上的减法计算差异,因此missing设置为required列表与字典中的键之间的差异.
使用&集合上的运算符(通常是二进制AND)为您提供交集,因此optional_present为您提供字典中的哪些键也在optional序列中(在这种情况下不必是集合,但使用集合会有意义) .
为了测试您仍然可以使用的单个键key in some_dict,但使用set操作可以避免过多的循环.
注意,这dict.viewkeys()是Python特有的(在Python 2.7中添加); 在Python 3,字典枚举的方法.keys(),.values()并且.items()在默认情况下返回字典视图和.view*()方法都没有了.