2017-02-24 4 views
-3

どのように2つの辞書の値を追加するには? 例:私たちはabが同じキーを持っていることを前提とした場合Python - 2つの辞書を追加する

a = {'a':10,'b':11,'c':20} 
b = {'a':1,'b':1,'c':1} 

結果は、いくつかは、いくつかの努力を示してください

c = {'a':11,'b':12,'c':21} 
+0

あなたが持っているものを含むべきですなぜそれが動作していないのか、試してみました。スタックオーバーフローはコード作成サービスではありません。 – Aaron

答えて

0

次でなければなりません。..

a = {'a':10,'b':11,'c':20} 
b = {'a':1,'b':1,'c':1} 

c = {k: a[k] + b[k] for k in a} 
print(c) # {'c': 21, 'b': 12, 'a': 11} 

以上が正常に動作します。

が一致しない場合は、次の手順を試すことができます:私は、キーの有無のチェックをスキップするために、両方の辞書にgetを使用しています

a = {'a': 10, 'b': 11, 'c': 20, 'h': 5} 
b = {'a': 1, 'b': 1, 'c': 1, 'd': 12} 

all_keys = set(a.keys()) # in Python 3 it can be simplified as `all_keys = set(a)` 
all_keys.update(b.keys()) # in Python 3 it can be simplified as `all_keys.update(b)` 
c = {k: a.get(k, 0) + b.get(k, 0) for k in all_keys} 
print(c) # {'c': 21, 'h': 5, 'a': 11, 'b': 12, 'd': 12} 

注意してください。

+0

'b 'にキーがあり、' a'には何がありますか? –

2

あなたは簡単に元のためにカウンタコレクションライブラリのクラスを使用して、2つの辞書を追加することができます。

from collections import Counter 

a = {'a':10,'b':11,'c':20} 
b = {'a':1,'b':1,'c':1} 

a = Counter(a) 
b = Counter(b) 
c = dict(a + b) 
print c 

OUTPUTあなたが質問をするとき、一般的に

{'c': 21, 'b': 12, 'a': 11} 
関連する問題