Python: fusión de diccionario actualizando pero no sobrescribiendo si existe valor
Si tengo 2 dictados de la siguiente manera:
d1 = {('unit1','test1'):2,('unit1','test2'):4}
d2 = {('unit1','test1'):2,('unit1','test2'):''}
Para 'fusionarlos':
z = dict(d1.items() + d2.items())
z = {('unit1','test1'):2,('unit1','test2'):''}
Funciona bien. Además, ¿qué hacer si quisiera comparar cada valor de dos diccionarios y solo actualizar d2 en d1 si los valores en d1 están vacíos / Ninguno / ''?
[EDITAR Pregunta: Al actualizar d2 en d1, cuando existe la misma clave, me gustaría mantener solo el valor numérico (ya sea de d1 o d2) en lugar del valor vacío. Si ambos valores están vacíos, entonces no hay problemas para mantener el valor vacío. Si ambos tienen valores, entonces el valor d1 debería permanecer. :) (mucho si-de lo contrario ... mientras tanto, lo probaría yo mismo)
es decir
d1 = {('unit1','test1'):2,('unit1','test2'):8,('unit1','test3'):''}
d2 = {('unit1','test1'):2,('unit1','test2'):'',('unit1','test3'):''}
#compare & update codes
z = {('unit1','test1'):2,('unit1','test2'):8, ('unit1','test2'):''} # 8 not overwritten by empty.
por favor ayuda a sugerir.
Gracias