使用另一个字典更新字典,但只能使用非None值

Vai*_*pai 5 python

从python 文档中我看到它dict有一个update(...)方法,但它似乎没有异常,我可能不想用新值更新旧字典.例如,当值为None.

这就是我目前所做的事情:

for key in new_dict.keys():
  new_value = new_dict.get(key)
  if new_value: old_dict[key] = new_value
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来使用新词典更新旧词典.

Jon*_*nts 12

你可以使用类似的东西:

old = {1: 'one', 2: 'two'}
new = {1: 'newone', 2: None, 3: 'new'}

old.update( (k,v) for k,v in new.iteritems() if v is not None)

# {1: 'newone', 2: 'two', 3: 'new'}
Run Code Online (Sandbox Code Playgroud)