私はタイプであるネストされた2つの辞書を持っているとの違いを探しますキーを比較している、現在私は周りにループをネストしていると私はこれが最も効率的な方法だとは思わないが、それらを比較する。ネストされた2つの辞書
答えて
アルゴリズムはリニアに最良に実行されます(Nはキーの集まりの長さです)。 インデックスで辞書メンバーにアクセスするのは定数O(1)操作ですしたがって、インデクサーまたはTryGetValueメソッドを使用していることを確認してください 結果として、アルゴリズムはコレクションのサイズでライナーになるはずです 複数のネストされた汎用辞書を使用する代わりに、の方がはるかに優れています。すなわち、キーが複合キーを表すいくつかの文字列フィールドを持つ構造体を持ち、その後、ちょうどこれがあれば
私はアプリケーションでデシリアライズされるjsonオブジェクトの形でデータをプッシュしています。しかし、キーは不明なので、ネストされたディクショナリに行ったのですが、私はより良い提案を歓迎します。また、可変キーにも対応していますか? – DorkMonstuh
Json.NETとデータを表すクラスを使用します。 –
@OscarVicentePerezはJson .NETのマップキーを変数名に変換しますか?もしそうなら、これはおそらくアプリケーションによってプッシュされているデータセットでは機能しません。 – DorkMonstuh
わからないネストせずに1つの辞書を使いますあなたが達成しようとしているものは何かを確認したいが、他のキーではないことを確認したい場合は、LINQ
var keysJustInFirst = dict1.Keys.Except(dict2.Keys);
var keysJustInSecond = dict2.Keys.Except(dict1.Keys);
var commonKeys = dict1.Keys.Intersect(dict2.Keys);
LINQ Exceptメソッドは、実行時間の点でパフォーマンスが悪くなることに注意してください。つまり、NとMは 'dict1'と' dict2'キーのコレクションの長さです。これは、ExceptIteratorがどのように実装されているかに起因します。内部的には 'Set
はい、努力はO(N + M)ですが、すべての辞書のキーを少なくとも一度、これはあなたが行うことを期待できる最高です – dyrssen
合意、あなたは完全な違いを見つける必要がある場合は、合意。 要素が同じかどうかを知るだけであれば、短絡のために最良の場合にはより早く行うことができます。最初の不一致で繰り返しを終了します。最良の場合はO(1) – ironstone13
- 1. Python 2カスケード/ネストされた辞書
- 2. 2つのネストされた辞書のユニットテストの等価性
- 3. 2つのネストされた辞書を比較する
- 4. jinja 2つのネストされた辞書からyaml
- 5. 2つのpklファイルからPythonのネストされた辞書を作成する方法/ 2つのネストされた辞書を1つに結合するか?
- 6. ネストされた辞書
- 7. ネストされたリソース辞書
- 8. ネストされた辞書
- 9. iOSのネストされた辞書Swift
- 10. C#Excelのネストされた辞書
- 11. Pythonのネストされた辞書
- 12. ネストされた辞書の理解:
- 13. VB.netのネストされた辞書System.NullReferenceException
- 14. Pythonのネストされた辞書
- 15. パンダデータフレームのネストされた辞書
- 16. ネストされた辞書をcsvにエクスポート
- 17. ネストされた辞書読解3
- 18. ネストされた辞書スウィフト中括弧?
- 19. ネストされた辞書オブジェクトですか?
- 20. タイプ別にネストされた辞書
- 21. 更新NSUserDefaultsネストされた辞書
- 22. ネストされた辞書を削減
- 23. python dict:ネストされた辞書
- 24. ネストされた辞書をコピーする
- 25. ネストされた辞書とマルチ処理
- 26. Countは、ネストされた辞書パイソン
- 27. Cで特定のネストされた辞書キーでネストされた辞書でグループ化する#
- 28. NSUserDefaultsネストされた辞書を持つobjectIsForcedForKey
- 29. ネストされた辞書からデータフレームを作成してネストされた辞書をカラムとして保持
- 30. ネストされた辞書の各サブ辞書をPythonのdefaultdictに変換する
を使用することができます。ネストされたループではなく、ネストされた辞書です。なぜそれが必要ですか?それを行う別の方法がないと確信していますか? –