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

Python字符串词频统计代码求助:重复输出词频如何解决

解决单词频率重复输出的问题

嗨,我懂你的困扰啦——现在你的代码会把重复出现的单词连着打印好几次,确实有点多余。咱们可以用几种简单的方法来fix这个问题,而且还能让代码更高效:

方法1:用集合去重(简单直接)

集合的特性就是里面的元素都是唯一的,所以我们可以先把拆分后的单词列表转成集合,这样每个单词只会出现一次,再遍历集合统计次数就行:

string = input("Enter your string: ")
words = string.split()
# 遍历去重后的单词集合
for word in set(words):
    print(f"{word} = {words.count(word)}")

不过要注意,集合是无序的,所以输出的单词顺序可能和原字符串里的顺序不一样哦。

方法2:用字典统计(高效且可保留顺序)

这种方法是遍历单词列表,把每个单词作为字典的键,出现次数作为对应的值,统计完成后再统一输出,不仅不会重复,效率也更高(不用每次都遍历整个列表去count):

string = input("Enter your string: ")
words = string.split()
frequency_dict = {}

for word in words:
    if word in frequency_dict:
        frequency_dict[word] += 1
    else:
        frequency_dict[word] = 1

# 遍历字典输出结果
for word, count in frequency_dict.items():
    print(f"{word} = {count}")

在Python 3.7及以上版本,字典默认会记住元素的插入顺序,所以输出的顺序就是单词第一次出现的顺序,完美匹配你的输入顺序~

方法3:用标准库Counter(最简洁)

Python的collections模块里有个专门的Counter类,就是用来统计元素频率的,一行代码就能完成统计,非常省心:

from collections import Counter

string = input("Enter your string: ")
words = string.split()
word_frequency = Counter(words)

for word, count in word_frequency.items():
    print(f"{word} = {count}")

Counter不仅简洁,还自带很多实用的方法,比如找出现次数最多的单词之类的,如果你之后有扩展需求也很方便。

这几种方法都能解决你的重复输出问题,你可以根据自己的需求选一个用哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:42:06