2016-11-22 5 views
3

の値がlistの2つの辞書を比較したい場合、どちらを使うべきですか。例えば2つのネストされた辞書のユニットテストの等価性

、これらdictsは次のようにしている場合:私は、ネストされたリスト内の順序を気にしないので、

{'other_parts': ['director', 'head', 'chief', 'leader', 'administrator'], 'headword': 'manager', 'language': 'en'} 

{'other_parts': ['director', 'chief', 'head', 'leader', 'administrator'], 'headword': 'manager', 'language': 'en'} 

私は、これら2枚のdictsの比較が渡したいです。 との比較は、other_partsのネストされたリストが同じ順序ではないので、失敗します。

+0

理解するには:リスト内の順序は関係ありませんが、要素は各リストで異なる回数表示されることがあります。その場合、要素は異なると見なされますか? – Mike

+0

@Mike: 'other_parts'の最終リストには重複が含まれません。 最初の例は、渡すことによって私を混乱させたからです。 – primoz

+0

その場合、あなたの正確なニーズを説明するために質問を変更しました。そうでなければ、あなたの特定の問題に対して回答が無関係になります。 – Mike

答えて

1

あなたは順序を気にしない場合、あなたは(あなたはリストは重複を含まないだろう確信している場合にのみ!)のリストを並べ替えたり、セットを使用する必要があります

dict1['other_parts'] = sorted(dict1['other_parts']) 
dict2['other_parts'] = sorted(dict2['other_parts']) 
assertDictEqual(dict1, dict2) 
1

改定後あなたの質問は、それはAssertCountEqualがあなたが探しているものだと思われます - これは、正確には、documentationで説明されています。 構造全体で機能しない場合は、ループを使用して各内部リストで実行しています。

関連する問題