除了某些字段外,如何检查2个dicts是否相等?

pet*_*ush 10 python dictionary python-3.x

有两个词:旧的和更新的.我想,以检查它们是否相等,除了status,latitudelongitude键.

assert old_dict['status'] != updated_dict['status']
assert old_dict['latitude'] != updated_dict['latitude']
assert old_dict['longitude'] != updated_dict['longitude']

for field in ('status', 'latitude', 'longitude'):
    updated_dict.pop(field)
    old_dict.pop(field)

assert old_dict == updated_dict
Run Code Online (Sandbox Code Playgroud)

什么是pythonic方式这样做?

blh*_*ing 3

您可以断言两个字典的项之间的对称差异是三个键的:

assert {k for k, _ in old_dict.items() ^ updated_dict.items()} == {'status', 'latitude', 'longitude'}
Run Code Online (Sandbox Code Playgroud)