私は約50,000の整数値を含む辞書と、100個のキーを含むセットを持っています。私の内側のループは、dict項目の値を予測不能な方法で増分または減分します。dict値のソートされたビューの維持?
定期的に、セットの1つのメンバーを、セット内にない最大のエレメントのキーで置き換える必要があります。仮にdict項目がソートされていた場合、このルーチンの呼び出しの間でソート順が劇的にではなくわずかに変化します。
毎回ディクテーション全体を並べ替えるのは無駄に見えますが、それはすでに「ほとんど」ソートされているためです。私は時期尚早な最適化が有罪かもしれませんが、これは非常に多くの反復を実行するのでパフォーマンスは重要ですので、明らかに効率的でpythonicなアプローチがあるかどうかを私のベターに尋ねる価値があると思いました。
私はdict "views"という概念を知っています。内容が変わると更新される内容にWindowsがあります。 「ソートされたビュー」のようなものはありますか?
辞書のキーは何ですか?また、最大値を見直す前に値の修正が何回起こっていますか? – Markus
鍵は整数の範囲(50,000)であり、最大値を見つけるために必要な時間の間に50回程度の変更があります。 BTW私は「増加または減少」と言ってはいけません: - より正確には、それらはしばしば+/- 1の量で変更されますが、常に最大値の10%未満です。 – JHD
それから、 'Counter'オブジェクト(Francescoが提案したようなもの)を使うのがおそらく道のりです。 – Markus