私はPythonの初心者です。いくつかのオブジェクトの数を格納するデータ構造が必要です。たとえば、最も訪問したウェブページを保存したいとします。まあ言ってみれば。私は最も訪問された100のウェブページを持っています。私は各ウェブページへの訪問回数を保持しています。リストを更新する必要があるかもしれません。間違いなく訪問回数を更新します。それは発注する必要はありません。 WebページIDを指定して、関連する訪問数を調べます。私は辞書を使うつもりです。これはPythonでこれを行うより速い方法がありますか?Python辞書構造、速度の問題
1
A
答えて
3
この辞書は、このタスク(ウェブページIDを訪問カウントにマッピングする)に適した高速なデータ構造です。
Python辞書は、高速O(1)アクセスのためにhash tablesを使用して実装されています。彼らは非常に速く、それらを避けるためのほとんどの試みがコードの実行を遅くし、コードを見苦しいものにするでしょう。
P.S.また、この種の作業(カウントヒット)用に特別に設計されたcollections.Counterをご覧ください。初期デフォルト値が0に設定された辞書として実装されています。
1
Python辞書オブジェクトは、Python言語全体の中で最も最適化された部分の1つで、その理由はどこでも辞書が使用されているからです。
たとえば、通常、すべてのクラスのすべてのオブジェクトインスタンスは辞書を使用してインスタンスデータメンバーのコンテンツを保持し、クラスはメソッドを含む辞書であり、モジュールは辞書を使用してグローバルを保持し、モジュールをルックアップするなど。
辞書を使用してカウンタを保持することは、Pythonの優れたアプローチです。
関連する問題
- 1. アマチュアアワー:Python辞書構造化
- 2. Pythonネストループ速度の問題
- 3. Python 3.6.3辞書の問題
- 4. JSoup文書構造問題
- 5. プロジェクト構造の辞書
- 6. Pythonのマルチプロセッシング速度の問題
- 7. Python辞書の値の問題
- 8. pythonリストの辞書とフィルタの問題
- 9. Python - 辞書のリスト。アクセスの問題
- 10. 辞書とリストでPython 3の問題
- 11. python:辞書とnumpy.arrayの問題
- 12. スウィフトフラットマップ辞書データ構造
- 13. のpython:私は辞書を持っている辞書のキー構造に
- 14. Python辞書の頻度
- 15. Python辞書の構文エラー
- 16. データ構造:辞書のような木
- 17. 多言語辞書のデータ構造
- 18. urlrewritefilter速度テンプレートレンダリングの問題
- 19. 速度テンプレートサブストリングの問題
- 20. パイガム速度の問題
- 21. C#ストリーム辞書の問題
- 22. 辞書の順序問題
- 23. iOS - 辞書の問題
- 24. C構造体の問題
- 25. リスト/ Dict構造の問題
- 26. JavaScriptオブジェクト構造の問題
- 27. データ構造の問題
- 28. ヒープデータ構造のラップアラウンド問題
- 29. 辞書ファイル構造Open Spell-Checkers
- 30. ポインタと構造問題
'どのくらい速くPython辞書構造ですか? '非常に高速です。 – ChristopheD
タイトルが多少間違っている可能性があります。しかし、私の懸念は理解できると思う。私はそれが私の目的のために最速かどうかを知りたい。あなたはそれについて何か考えていますか? –
あなたのニーズに合った['collections.counter'](http://docs.python.org/library/collections.html#collections.Counter)も見ることができます。 – jamylak