辞書のリストが2つ並んでいないこと、すなわち、順序が異なっていても同じ内容であることを確認したいと思います。Pythonで未分類の辞書リストの照合
in
重複した辞書が可能であるため、チェックが不十分です。
sorted(list_of_lists1) == sorted(list_of_lists2)
しかし、辞書をソートすることは、不安定である:それはリストのリストであれば(例えばlist1 = [dict1, dict1, dict2]
とlist2 = [dict1, dict2, dict2]
)
、私はちょうどそれらを並べ替えると思います。
私はすべてのdictsをタプルに変換することでこれを回避できますが、これは非効率的で不足しているようです。
もっと直接的な解決策はありますか?
これは私がやったことですが、実際に辞書でそれを行う方法があると思っていました。しかし、ありがとう! – mblakesley
私が直感しているように、それらを辞書として保管しておけば、並べ替えることはできないので、それぞれの項目をそれぞれの項目と比較して 'O(n^2)'ランタイムになる必要があります。 (おそらく) 'O(n)'リスト/タプルへの変換、 'O(n log(n))'ソート、 'O(n)'の比較です。 –