比较字典时忽略特定键
- 论坛
- 比较字典时忽略特定键
16 浏览
比较字典时忽略特定键
如何在不考虑某些键的情况下测试两个字典是否相等。例如,
equal_dicts( {'foo':1, 'bar':2, 'x':55, 'y': 77 }, {'foo':1, 'bar':2, 'x':66, 'z': 88 }, ignore_keys=('x', 'y', 'z') )
应该返回True。
更新:我正在寻找一种高效、快速的解决方案。
更新2:我最终得到了以下代码,它似乎是最快的:
def equal_dicts_1(a, b, ignore_keys): ka = set(a).difference(ignore_keys) kb = set(b).difference(ignore_keys) return ka == kb and all(a[k] == b[k] for k in ka)