:空の文字列はfalseと評価することを
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)
注意を、そうではなく、それが空に等しいとき壊すよりも、文字列の場合は、文字列をループ条件として使用できます。
編集:あなたは学術的な運動として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つを使用してカウントすることが容易になります。
あなたの言葉のリストも残しておきたい場合は、それを追加する必要があります。例:
で読むことができますあなたは 'Counter'を使うことができれば冗長です:D http://docs.python.org/library/collections.html#collections.Counter – jamylak
目的はCounterを使用しないことです:) – JamieB
ああ、その場合はよくオススメです'defaultdict'を使用することが許可されていない場合を除きます。 – jamylak