私は辞書を 2 つ持っていますが、簡単にするために、次の 2 つを取り上げます。
>>> x = dict(a=1, b=2)
>>> y = dict(a=2, b=2)
key, value
ここで、の各ペアがx
で同じ対応する値を持つかどうかを比較したいと思いますy
。そこで、次のように記述しました。
>>> for x_values, y_values in zip(x.iteritems(), y.iteritems()):
if x_values == y_values:
print 'Ok', x_values, y_values
else:
print 'Not', x_values, y_values
そして、 a がtuple
返され、等しいかどうか比較されるので、これは機能します。
私の質問:
これは正しいでしょうか?これを行うより良い方法はありますか? 速度ではなく、コードのエレガントさについて話しています。
key, value
更新:等しいペアがいくつあるかを確認する必要があることを忘れていました。
ベストアンサー1
両方の辞書で一致する値の数を知りたい場合は、次のように言うべきです :)
おそらく次のようになります:
shared_items = {k: x[k] for k in x if k in y and x[k] == y[k]}
print(len(shared_items))