他の人が、述べたようにa.update(b)、いくつかのdictsのためにaとb、あなたの質問にを求めてきた結果を実現します。ただし、extendマッピング/セットオブジェクトのメソッドが構文a.extend(b)でaの値をの値で上書きしないことを望んでいることを何度も見たことがあることを指摘したいと思いbます。a.update(b)はa値を上書きするため、には適していませんextend。
一部の言語では、このメソッドdefaultsまたはを呼び出します。これinjectは、既存の値を上書きせずにbの値(デフォルト値のセットである場合があります)をディクショナリに注入する方法と考えることができるためです。
もちろん、a.extend(b)とほぼ同じように簡単にメモできますb.update(a); a=b。割り当てを削除するには、次のようにします。
def extend(a,b):
"""Create a new dictionary with a's properties extended by b,
without overwriting.
>>> extend({'a':1,'b':2},{'b':3,'c':4})
{'a': 1, 'c': 4, 'b': 2}
"""
return dict(b,**a)
の副作用のないdictコンストラクターを使用したスマートなアイデアを提供してくれたTom Leysに感謝しextendます。