求助:词频统计程序需实现单词转小写以修正统计结果
问题解决:单词小写转换与频率统计修正
原程序的核心问题是未统一将单词转为小写,导致大小写不同的同一单词被当作不同条目统计。以下是修正后的代码:
def word_frequencies(words): # 拆分单词并统一转为小写 lower_words = [word.lower() for word in words.split()] freq_dict = {} # 遍历统计每个单词的频率 for word in lower_words: freq_dict[word] = freq_dict.get(word, 0) + 1 return freq_dict if __name__ == '__main__': words = input("Enter a sentence: ") your_dictionary = word_frequencies(words) sorted_keys = sorted(your_dictionary.keys()) for key in sorted_keys: print(f"{key}: {your_dictionary[key]}")
关键修改点:
- 统一小写转换:拆分单词时直接将每个单词转为小写,确保
ZyBooks和zyBooks被识别为同一个单词zybooks。 - 优化统计逻辑:改用字典
get()方法统计频率,避免原代码中list.count()重复遍历列表的低效问题,同时保证统计结果准确。
测试验证:
输入句子:ZyBooks now zyBooks later zyBooks forever
输出结果:
forever: 1 later: 1 now: 1 zybooks: 3
内容的提问来源于stack exchange,提问作者user20577449
相关产品推荐
相关产品推荐

