wordsFreq = {}
words = []
while True:
inputWord = raw_input()
if (inputWord != ""):
words.append(inputWord)
else:
break
for word in words:
wordsFreq[word] = wordsFreq.get(word, 0) + 1
for word,freq in wordsFreq.items():
print word + " - " + str(freq)
Run Code Online (Sandbox Code Playgroud)
显然我的单词[]和for循环是多余的,但我没有进一步的解释,任何人都可以向我解释为什么它是多余的?
您可以跳过构建单词列表的步骤,而是在用户输入单词时直接创建频率字典.我曾经defaultdict避免检查是否已经添加了一个单词.
from collections import defaultdict
wordsFreq = defaultdict(int)
while True:
word = raw_input()
if not word:
break
wordsFreq[word] += 1
Run Code Online (Sandbox Code Playgroud)
如果您不被允许使用defaultdict,它可能如下所示:
wordsFreq = {}
while True:
word = raw_input()
if not word:
break
wordsFreq[word] = wordFreq.get(word, 0) + 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9059 次 |
| 最近记录: |