実際には、Counter
を引き続き使用することをおすすめします。これは本当に有用なツールですが、物事を数えていますが、それは実際に表現力豊かな構文を持っていますので、sort
について心配する必要はありません。それを使用して、あなたが行うことができます:私のinput.txt
で
from collections import Counter
#opens the file. the with statement here will automatically close it afterwards.
with open("input.txt") as input_file:
#build a counter from each word in the file
count = Counter(word for line in input_file
for word in line.split())
print(count.most_common(10))
を、これはメモリにファイル全体を読む必要はありませんので、私はそれを少し変更した
[('THE', 27643), ('AND', 26728), ('I', 20681), ('TO', 19198), ('OF', 18173), ('A', 14613), ('YOU', 13649), ('MY', 12480), ('THAT', 11121), ('IN', 10967)]
の出力を持っています。私のinput.txt
は、このコードがファーストであることを証明するために、シェイクスピアの作品の私の句読点のないバージョンです。私のマシンでは約0.2秒かかります。
あなたのコードは少しばかげていました。あなたはいくつかのアプローチをまとめようとしているように見えます。私のコードには説明的な機能が追加されています。うまくいけば、それは比較的簡単なはずですが、あなたがまだ何かについて混乱しているなら、私に教えてください。
'wordcount'には何もありません。テキストファイルも使用していません。 – 0decimal0
あなたは 'file'を開いていますが、そのファイルからデータを読み込んでいません。 – Laszlowaty