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

Python字符串字母出现次数统计:如何避免重复统计同一字母?

解决Python统计单词字母出现次数去重问题

问题描述

我编写了如下Python代码,试图统计单词'monsoon'中每个字母的出现次数并返回结果列表:

word = 'monsoon'

def check(x):
    emptyList = []
    search = list(word)
    for element in x:
        count_elements = str(search.count(element))
        emptyList += count_elements
        
    print(emptyList)

check(word)

当前代码输出为['1', '3', '2', '1', '3', '3', '2'],但我希望避免重复统计同一字母,得到['1', '3', '2', '1']这样的结果,请问该如何修改代码?

修改方案

方案一:基于有序去重集合遍历

利用dict.fromkeys()实现有序去重(保留字母在原单词中首次出现的顺序),遍历去重后的字母列表统计次数:

word = 'monsoon'

def check(x):
    emptyList = []
    # 获取无重复且保持首次出现顺序的字母列表
    unique_chars = list(dict.fromkeys(x))
    for element in unique_chars:
        count_elements = str(x.count(element))
        emptyList.append(count_elements)
        
    print(emptyList)

check(word)

执行后输出:['1', '3', '2', '1'],符合需求。

方案二:用列表标记已处理字母

遍历原单词时,用额外列表记录已统计过的字母,避免重复处理:

word = 'monsoon'

def check(x):
    emptyList = []
    processed_chars = []
    for element in x:
        if element not in processed_chars:
            count_elements = str(x.count(element))
            emptyList.append(count_elements)
            processed_chars.append(element)
        
    print(emptyList)

check(word)

这种方式同样能得到目标结果,逻辑直观,适合理解基础遍历和去重逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 13:50:23