Come posso verificare se due dizionari sono uguali mentre si prendono in considerazione alcune chiavi. Ad esempio,Confronto dei dizionari ignorando chiavi specifiche
equal_dicts(
{'foo':1, 'bar':2, 'x':55, 'y': 77 },
{'foo':1, 'bar':2, 'x':66, 'z': 88 },
ignore_keys=('x', 'y', 'z')
)
deve restituire Vero.
UPD: Sto cercando una soluzione efficiente e veloce.
UPD2. Ho finito con questo codice, che sembra essere il più veloce:
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)
Timings: https://gist.github.com/2651872
+1 (meglio della mia risposta!) Inoltre, se uno sta usando Python 3, puoi usare una [dict comprehension] (http://docs.python.org/py3k/tutorial/datastructures.html#dictionaries) (scorrere verso il basso un po ') al posto del 'd idioma () 'idioma. –
huon
Questa è una soluzione semplice, ma nella mia situazione l'efficienza è importante. – georg
@ thg435 - guarda la mia risposta aggiornata. – eumiro