使い方次第だと思いますので、一般的な質問は許してください。でも、私の場合は、値の存在を確認したいときcollections.deque
よりもかなり遅かったです。collections.defaultdict
小さな単語セットに対してユーザーの入力を検証するために、PeterNorvigのスペル修正を使用しました。単語頻度のある辞書は使い物にならなかったので、最初はシンプルなものを使いましたlist
が、1つの単語の検索に約25秒かかることに気づいたらすぐにdefaultdict
置き換えました。deque
驚いたことに、それは使用するよりも速くなかったlist
ので、私は使用defaultdict
に戻り、ほぼ瞬時に結果が返されました。
誰かがこのパフォーマンスの違いを私に説明できますか?
前もって感謝します
PS:私が話していたことを再現したい場合は、ノーヴィグのスクリプトの次の行を変更してください。
-NWORDS = train(words(file('big.txt').read()))
+NWORDS = collections.deque(words(file('big.txt').read()))
-return max(candidates, key=NWORDS.get)
+return candidates