2009-08-26 111 views
8

Python新手,所以这可能看起来很愚蠢。从Python字典删除无值

我有两个类型的字典:

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

我需要与存在于用户的值更新我的默认值。但只限于那些价值不等于无。所以,我需要回到一个新的字典:

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

回答

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

而在Python 3,使用user.items() – Ayman 2009-08-26 11:27:05

7

随着update()方法,有些发电机的表达:

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