Necesitaba comparar 2 diccionarios para encontrar el conjunto de claves en un diccionario que no estaba en el otro.¿Manera concisa de encontrar la diferencia "clave" entre 2 diccionarios?
sé que Python establece objetos apoyan:
set3=set1-set2
pero no puedo hacer:
dict3=dict1-dict2
o:
missingKeys=dict1.keys()-dict2.keys()
(Me sorprendió un poco en el último punto, porque en Java las claves son un objeto Set). Una solución es:
missingKeys=set(dict1.keys())-set(dict2.keys())
¿Hay alguna forma mejor o más concisa para hacer esto?
creo que la última línea está suficientemente concisa a mí mismo, pero ... Creo que una pregunta más interesante es "¿Cómo eliminar todo z en Y de X?" donde X e Y son listas. Esto sería útil cuando existan z duplicados en X que aparezcan en Y deberían quedar solos, por ejemplo. –
@pst: Bueno, se siente un poco extraño crear objetos establecidos, solo para aprovechar la función de diferencia() ... –
Por otro lado, como * es * un conjunto, puede aprovechar un mejor O ... para las diferencias de listas usando la comprensión es fácil, pero un poco más prolijo. Sin embargo, el mismo rendimiento si la lista "probada" se convierte en un "conjunto". –