2009-08-26 109 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)