不使用count()方法实现Python词频统计的代码修改咨询
问题分析与代码调整方案
原有代码的问题点
- 变量名拼写错误:输入接收的变量名错写为
sentece,后续遍历使用的sentence属于未定义变量 - 存在未定义变量
ordbok:判断逻辑中用了不存在的ordbok字典,实际定义的存储字典是dict - 遍历对象错误:原来遍历的是输入的字符串本身,自然只会统计单个字符的频次,需要遍历
split()拆分后的单词列表 - 不建议用Python内置类型名
dict作为自定义变量名,会覆盖原有内置方法
修正后代码
word_count = {} def convert(sentence): # 默认按空白字符拆分,返回单词列表 return sentence.split() sentence = input("write something: ") word_list = convert(sentence) print("拆分后的单词列表:", word_list) # 遍历单词列表统计频次,不使用count()方法 for word in word_list: if word not in word_count: word_count[word] = 0 word_count[word] += 1 print("单词频次统计结果:", word_count)
核心调整说明
- 修正了所有变量名拼写、未定义的问题,将存储频次的字典重命名为
word_count避免和内置类型冲突 - 将
split()返回的单词列表单独存储,遍历这个列表实现按单词统计,而非遍历原字符串统计字符 - 统计逻辑全程未使用
count()方法,符合要求 - 如果需要适配大小写不敏感、过滤标点符号的统计场景,可以在拆分单词后新增统一转小写、去除首尾标点的处理逻辑即可
内容的提问来源于stack exchange,提问作者victorialangoe
相关产品推荐
相关产品推荐

