2つの辞書を比較し、(キー、値)ペアがいくつ等しいかをチェックする 質問する

2つの辞書を比較し、(キー、値)ペアがいくつ等しいかをチェックする 質問する

私は辞書を 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))

おすすめ記事