You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python读取文件统计高频单词代码错误修复:输出结果异常

问题分析与修复

你的代码核心问题是错误地将变量名用引号包裹,变成了字符串字面量,导致计数逻辑完全失效:

  • word_file.count("y") 实际是统计字符串 "y" 在列表中的出现次数,而非变量 y 对应的当前单词
  • word_file.count("wanted_word") 同理,是统计字符串 "wanted_word" 的次数,而非 wanted_word 变量存储的目标单词

这会让循环里的条件判断几乎永远不成立(除非文件里恰好有大量"y"或"wanted_word"),最终wanted_word会被循环的最后一个y(即文件最后一个单词)覆盖,所以输出结果错误。


修复方案1:修正原代码的变量引用错误

只需去掉引号,直接使用变量名即可:

with open('python.txt', 'r') as python_file:
    word_file = python_file.read().split()
    wanted_word = word_file[0]
    for y in word_file:  # 直接遍历单词,不用索引更简洁
        if word_file.count(y) > word_file.count(wanted_word):
            wanted_word = y

print(wanted_word)

不过这种方式每次count()都会遍历整个列表,大文件场景下效率偏低,更推荐下面的优化方案。

修复方案2:用字典统计单词出现次数(高效版)

先遍历一次列表统计每个单词的次数,再找出次数最多的单词,时间复杂度更低:

with open('python.txt', 'r') as python_file:
    word_file = python_file.read().split()
    word_counts = {}
    for word in word_file:
        word_counts[word] = word_counts.get(word, 0) + 1
    
    # 题目说明次数唯一,无需处理并列情况
    wanted_word = max(word_counts, key=word_counts.get)

print(wanted_word)

内容的提问来源于stack exchange,提问作者kristen0302

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 20:35:01