Vergleichen Sie Wörterbücher, indem Sie bestimmte Schlüssel ignorieren
Wie kann ich testen, ob zwei Wörterbücher gleich sind, während einige Schlüssel berücksichtigt werden? Zum Beispiel,
<code>equal_dicts( {'foo':1, 'bar':2, 'x':55, 'y': 77 }, {'foo':1, 'bar':2, 'x':66, 'z': 88 }, ignore_keys=('x', 'y', 'z') ) </code>
sollte True zurückgeben.
UPD: Ich suche nach einer effizienten und schnellen Lösung.
UPD2. Ich landete mit diesem Code, der am schnellsten zu sein scheint:
<code>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) </code>
Timings:https://gist.github.com/2651872