collections.Counter
これを簡単に行うために使用できます。
from collections import Counter
words = []
input_word = True
while input_word:
input_word = raw_input()
words.append(input_word)
counted = Counter(words)
for word, freq in counted.items():
print word + " - " + str(freq)
空の文字列はfalseと評価されるため、空の文字列と等しいときに破損するのではなく、文字列をループ条件として使用できることに注意してください。
編集:アカデミックエクササイズとして使用したくない場合Counter
は、次善のオプションはcollections.defaultdict
:です。
from collections import defaultdict
words = defaultdict(int)
input_word = True
while input_word:
input_word = raw_input()
if input_word:
words[input_word] += 1
for word, freq in words.items():
print word + " - " + str(freq)
は、すべてのdefaultdict
キーが0
以前に使用されたことがない場合の値を指すようにします。これにより、1つを使用して簡単に数えることができます。
それでも単語のリストを保持したい場合は、さらにそれを行う必要があります。例えば:
words = []
words_count = defaultdict(int)
input_word = True
while input_word:
input_word = raw_input()
if input_word:
words.append(input_word)
words_count[input_word] += 1