私はpythonが初めてです。一部のオブジェクトのカウントを格納するデータ構造が必要です。たとえば、最もアクセスされた Web ページを保存したいとします。まあ言ってみれば。最も訪問された 100 の Web ページがあります。各ウェブページへの訪問数を記録しています。リストを更新する必要があるかもしれません。私は間違いなく訪問数を更新します。注文する必要はありません。Web ページ ID に関連付けられている訪問数を調べます。辞書を使う予定です。Pythonでこれを行うより速い方法はありますか?
質問する
249 次
2 に答える
2
ディクショナリは、このタスク (Web ページ ID を訪問数にマッピングする) に適した高速なデータ構造です。
Python 辞書は、高速な O(1) アクセスのためにハッシュ テーブルを使用して実装されます。それらは非常に高速であるため、それらを回避しようとすると、コードの実行が遅くなり、コードが見にくくなります。
PS また、この種の作業 (ヒット数のカウント) 用に特別に設計されたcollections.Counterもご覧ください。初期デフォルト値がゼロに設定されたディクショナリとして実装されます。
于 2012-04-28T22:35:01.793 に答える
1
Python 辞書オブジェクトは、Python 言語全体の中で最も最適化された部分の 1 つです。その理由は、辞書があらゆる場所で使用されているためです。
たとえば、通常、すべてのクラスのすべてのオブジェクトインスタンスは辞書を使用してインスタンスデータメンバーのコンテンツを保持し、クラスはメソッドを含む辞書であり、モジュールは辞書を使用してグローバルを保持し、システムは辞書を使用してモジュールを保持および検索し、すぐ。
辞書を使用してカウンターを保持することは、Python での優れたアプローチです。
于 2012-04-28T22:37:21.837 に答える