私はdict1 - dict2を減算しようとしています。結果は、犬のための負の数であれば、私は概念の学習にちょうど興味があります、それは問題ではありません:)2つの辞書の値を減算する
owner = ['Bob', 'Sarah', 'Ann']
dict1 = {'Bob': {'shepherd': [4,6,3],'collie': [23, 3, 45], 'poodle':[2,0,6]}, {'Sarah': {'shepherd': [1,2,3],'collie': [3, 31, 4], 'poodle': [21,5,6]},{'Ann': {'shepherd': [4,6,3],'collie': [23, 3, 45], 'poodle': [2,10,8]}}
dict2 = {'Bob': {'shepherd': 10,'collie': 15,'poodle': 34},'Sarah': {'shepherd': 3,'collie': 25,'poodle': 4},'Ann': {'shepherd': 2,'collie': 1,'poodle': 0}}
私が欲しい:
wanted = dict1 = {'Bob': {'shepherd': [-6,-4,-7],'collie': [8, -12, 30], 'poodle':[-32,-34,-28]}, {'Sarah': {'shepherd': [-2,-1,0],'collie': [-22, 6, -21], 'poodle': [17,1,2]},{'Ann': {'shepherd': [2,4,1],'collie': [22, 2, 44], 'poodle': [2,10,8]}}
は、私はまだ辞書に新しいですので、ここで私が試してきたものですが、タイプエラーはありません。私はdict1がdict2よりも多くの値を持っていると仮定していますが、上記の計算を実行する方法を見つけることができません。
wanted = {}
for i in owner:
wanted.update({i: dict1.get(i) - dict2.get(i)})
あなたは、ネストされた辞書の理解の考え方を説明していただけますか?リースでdict1を反復する方法。問題は非常に面白いですが、答えは私に巻き込まれます。 – Monica
@Monica:私は答えが畳み込まれていることに同意しない:それはそれを行うのが最も単純で無作法である。最初にあなたを混乱させるかもしれないのは、あなたが3つのネストされたリスト/ディクテーションの理解を持っているという事実です。それを理解するには、1から1を内側から崩してみてください。 – Julien
@Monica - ネストされた辞書の理解を少し説明しようとする脚注を追加しました。キーは、各レイヤーをステップするだけです。 Julienが指摘したように、これはかなりPythonicな構造で、価値のあることを学ぶ価値があります。 – Karin