###質問内容
現在以下のソースコードのように、テキストファイルを読み込んでその中で一番多く使われている3つの文字をCounterを使ってカウントし出力するプログラムを書きました。カウントはアルファベットのみです。
しかし、出力部においてディクショナリのvalueでソートしてreverseして上から3つ取り出すのにあまりスマートではない書き方をしてしまっています。
どうにかして、もっと簡単に上位3つのkeyとvalueを取り出せないでしょうか?
文章読みづらくてすみません。
###該当のソースコード
Python
1import collections as col 2 3cnt = col.Counter() 4with open('win.txt', 'r') as text: 5 for sent in text: 6 for word in sent: 7 if 97 <= ord(word) < 97 + 26 or 65 <= ord(word) < 65 + 26: 8 cnt[word] += 1 9count = 1 10for key, value in sorted(cnt.items(), key=lambda x: x[1], reverse=True): 11 print(count, key, value) 12 count += 1 13 if count-1 == 3: 14 break 15 16# 出力はこういう風にしたいです。 17# 1 a 840 18# 2 e 774 19# 3 i 596 20
###補足情報(言語)
Python 3.6.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/11 05:39