登录
首页 >  文章 >  python教程

Python统计单词频率的实用方法

时间:2026-02-05 17:09:44 260浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个文章开发实战,手把手教大家学习《Python统计单词出现次数方法详解》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

如何用Python统计输入文本中每个单词的出现频次

本文介绍如何正确统计用户输入的一行文本中每个单词的出现次数,并按原始顺序逐行输出“单词 频次”,重点纠正初学者常见的重复计数与输出逻辑错误。

你的原始代码存在两个关键问题:

  1. word_count = each_word.count(x) 在循环外计算,导致 word_count 最终只保留最后一个单词的计数结果(即 "mark" 出现 1 次),并被统一打印一次;
  2. *`print(each_word, word_count)`** 将所有单词展开后拼接一个数字,完全偏离了“每词一行、带各自频次”的输出格式。

✅ 正确思路是:对 split() 得到的每个单词 x,在循环体内即时统计其在整个字符串中的出现次数,并立即打印。注意——必须基于原始输入字符串(而非 each_word 列表)调用 .count(),否则大小写敏感问题(如 "hi" 和 "mark")会被误判(列表中 "hi" 出现 2 次,但 "mark" 是小写,与 "Mark" 不同)。

以下是修正后的完整可运行代码:

phrase = input().strip()  # 读入并去除首尾空格
words = phrase.split()

for word in words:
    count = phrase.count(word)  # ✅ 在原始字符串上统计,保持大小写原貌
    print(f"{word} {count}")

? 运行示例
输入:hey hi Mark hi mark
输出:

hey 1
hi 2
Mark 1
hi 2
mark 1

⚠️ 注意事项:

  • 该方法区分大小写("Mark" ≠ "mark"),符合题目样例预期;若需忽略大小写,可统一转为 .lower() 后处理;
  • .count() 对长文本效率较低(时间复杂度 O(n²)),生产环境推荐使用 collections.Counter 配合字典预统计(单次遍历 O(n)),但本题强调“按输入顺序输出”,故直接计数更直观;
  • 不要使用 dict 预存频次再循环输出——这会丢失重复单词的多次出现位置,无法满足“每个词单独一行”的输出要求(如 "hi" 必须输出两次)。

总结:掌握“循环中即时计算 + 即时输出”这一模式,是解决此类顺序敏感型频次统计问题的关键。

今天关于《Python统计单词频率的实用方法》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

前往漫画官网入口并下载 ➜
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>