2009-08-26 10 views
8

Novato a Python, por lo que esto puede parecer una tontería.Borrar Ninguno valores de Python dict

que tienen dos predice:

default = {'a': 'alpha', 'b': 'beta', 'g': 'Gamma'} 
user = {'a': 'NewAlpha', 'b': None} 

necesito actualizar mis valores predeterminados con los valores que existen en el usuario. Pero solo para aquellos que tienen un valor no igual a Ninguno. Así que necesito para volver un nuevo dict:

result = {'a': 'NewAlpha', 'b': 'beta', 'g': 'Gamma'} 

Respuesta

18
result = default.copy() 
result.update((k, v) for k, v in user.iteritems() if v is not None) 
+1

Y en Python 3, uso user.items() – Ayman

7

Con el método update(), y algunos expresión generadora:

D.update((k, v) for k, v in user.iteritems() if v is not None) 
Cuestiones relacionadas