私はいくつかの共有キーといくつかの異なるものを持つ2つの辞書を持っています。 (各辞書には、他のキーには存在しないいくつかのキーがあります)。あたかも共有鍵だけが存在するかのように、2つの辞書が等しいかどうかを比較する良い方法はありますか?言い換えれば共有キーの辞書のみを比較する
私は次のように計算するための最も簡単な方法をしたい:
commonkeys = set(dict1).intersection(dict2)
simple1 = dict((k, v) for k,v in dict1.items() if k in commonkeys)
simple2 = dict((k, v) for k,v in dict2.items() if k in commonkeys)
return simple1 == simple2
私はこれにそれを簡素化することができた:
commonkeys = set(dict1).intersection(dict2)
return all(dict1[key] == dict2[key] for key in commonkeys)
しかし、私はそのアプローチのために願っています共通鍵の事前計算を必要としない。 (実際には、私はペアごとに比較する辞書のリストが2つあります。各リストのすべての辞書は同じキーのセットを持っていますので、commonkeys
のような計算が必要な場合は、一度だけ行う必要があります)
あなたは 'すべてを返します(commonkeysでiに対してdict1 [i] == dict2 [i])'を使用できませんでしたか? – CodenameLambda
ええ、私はちょうどそれを編集していました。でも、もっと良い方法があると思っています。 – alexis
「私はこれを簡略化できました」?私は気にしませんが、他の人にこれをしないでください^^ – CodenameLambda