私は彼らのパフォーマンスがどのように使用されているかによると確信していますが、私の場合はcollections.deque
がcollections.defaultdict
より遅く、値の存在を確認したいと思っています。なぜcollections.dequeはcollections.defaultdictよりも遅いのですか?
私は小さなセットの単語に対してユーザーの入力を確認するためにspelling correction from Peter Norvigを使用しました。単語の頻度のある辞書には役に立たなかったので、最初はdefaultdict
の代わりに単純なlist
を使用しましたが、1単語の検索に約25秒かかったことに気付くとただちにdeque
に置き換えました。
驚いたことに、それはlist
を使用するよりも速くなかったので、私はdefaultdict
を使用して戻って、結果をほぼ即座に返しました。
誰かがこのパフォーマンスの違いを私に説明できますか?事前
PSで
ありがとう:あなたの一つは、私が話していたものを再生したい場合は、Norvigのスクリプトに次の行を変更します。
-NWORDS = train(words(file('big.txt').read()))
+NWORDS = collections.deque(words(file('big.txt').read()))
-return max(candidates, key=NWORDS.get)
+return candidates
この度は深くお答えいただき、ありがとうございます。 – jnns