Skip to main content
 首页 » 编程设计

Python 字数统计

2025年05月04日8think

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) 

显然我的话 [] 和 for 循环是多余的,但我没有进一步的解释,谁能向我解释为什么它是多余的?

请您参考如下方法:

您可以跳过构建单词列表的步骤,而是在用户输入单词时直接创建频率字典。我使用 defaultdict 来避免检查是否已经添加了一个词。

from collections import defaultdict 
 
wordsFreq = defaultdict(int) 
while True: 
    word = raw_input() 
    if not word: 
        break 
    wordsFreq[word] += 1 

如果不允许使用 defaultdict,它可能看起来像这样:

wordsFreq = {} 
while True: 
    word = raw_input() 
    if not word: 
        break 
    wordsFreq[word] = wordFreq.get(word, 0) + 1