Как я могу проверить, являются ли два словаря равными при снятии некоторых ключей. Например,
equal_dicts(
{'foo':1, 'bar':2, 'x':55, 'y': 77 },
{'foo':1, 'bar':2, 'x':66, 'z': 88 },
ignore_keys=('x', 'y', 'z')
)
должен возвращать значение True.
UPD: Я ищу эффективное, быстрое решение.
UPD2. Я закончил с этим кодом, который кажется самым быстрым:
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)