1. ホーム
  2. python

辞書の値を比較する良い方法はありますか

2023-09-13 12:31:48

質問

現在、以下の関数を使って、辞書の値を比較し、一致しない値をすべて表示しています。これを行うより速い、またはより良い方法はありますか?

match = True
for keys in dict1:
    if dict1[keys] != dict2[keys]:
        match = False
        print keys
        print dict1[keys],
        print  '->' ,
        print dict2[keys]

編集:両方のディクテは同じキーを含んでいます。

どのように解決するのですか?

ディクテが同一のキーセットを持っていて、値の違いに関わらずそれらのプリントがすべて必要な場合、できることはあまりありません。

diffkeys = [k for k in dict1 if dict1[k] != dict2[k]]
for k in diffkeys:
  print k, ':', dict1[k], '->', dict2[k]

とほぼ同じですが、例えばループする前にdiffkeyをソートすることで、よりきれいに表示できるかもしれません。