10

Pythonのドキュメントdictから、メソッドがあることがわかりますupdate(...)が、古いディクショナリを新しい値で更新したくない場合は、例外が発生しないようです。たとえば、値がNone.

これは私が現在行っていることです:

for key in new_dict.keys():
  new_value = new_dict.get(key)
  if new_value: old_dict[key] = new_value

新しい辞書を使用して古い辞書を更新するより良い方法はありますか。

4

3 に答える 3

16

次のようなものを使用できます。

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

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

# {1: 'newone', 2: 'two', 3: 'new'}
于 2013-03-07T17:07:44.307 に答える