0

コンテンツごとに辞書を比較したいので、アイテムタプルの順序付けられていないハッシュを作成することでこれを実行できると思いました。

そのための最もエレガントなソリューションは何ですか?

私はすべての個別のハッシュをXORすることを考えていましたが、別の既成の解決策があるのではないでしょうか。

編集:ネストされたデータ構造があります。一部のクラスにはdictが含まれています。これらのクラスは、セットに集約できます。したがって、セットを事前定義されたセット比較と比較するには、dictクラスに対して(__eq__簡単です)と__hash__(私の質問です)の両方を実装する必要がありますか?!

4

2 に答える 2

2

重複するキーのすべての値が同じであることを確認するには、次のいずれか(Pythonのバージョンによって異なります)とスタイル:

if all(dict_a[key] == dict_b[key] for key in dict_a.viewkeys() & dict_b.viewkeys())

if all(dict_a[key] == dict_b[key] for key in set(dict_a) & set(dict_b))

「それらは同じ値ですか」をもう少し具体的に処理するには...

for k, v in dict_a.iteritems():
    try:
        ov = dict_b[k]
    except KeyError as e:
        continue
    if v == ov: 
        pass # or whatever
于 2012-09-25T10:30:05.710 に答える
0

マッピング タイプのドキュメントを参照 してください。辞書に対してさまざまな操作を実行するための演算子が既に定義されています。

于 2012-09-25T10:18:08.210 に答える