2009-08-26 7 views
8

Débutant à Python, cela peut sembler ridicule.Supprimer Aucune valeur de Python dict

J'ai deux dicts:

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

Je dois mettre à jour mes paramètres par défaut avec les valeurs qui existent dans l'utilisateur. Mais seulement pour ceux qui ont une valeur différente de None. Donc, je dois retourner une nouvelle dict:

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

Répondre

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

Et en Python 3, utilisez user.items() – Ayman

7

Avec la méthode update(), et une expression du générateur:

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