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

代码执行结果异常:文本中字母出现次数统计不符合预期

修复字母计数代码中每个字符仅统计1次的问题

你的代码逻辑存在问题:只有当字符第一次出现时才会进入if分支,执行result[letter]=0和result[letter]+=1(最终值为1),但后续重复出现的同一字符不会触发if条件,也就不会执行累加操作,导致所有字符的计数都是1。

下面是几种可行的修复方案:

方案1:调整原逻辑,确保每次出现都累加

把累加操作移到if分支外面,这样无论字符是否第一次出现,都会执行计数累加:

def count_letters(text):
    result = {}
    for letter in text:
        if letter not in result:
            result[letter] = 0
        result[letter] += 1
    return result
    
count_letters("aaad g a")  # 返回 {'a':4, 'd':1, ' ':2, 'g':1}

方案2:用dict.get()简化判断

利用字典的get()方法,直接获取字符当前计数(不存在则返回默认值0),再进行累加,省去if判断:

def count_letters(text):
    result = {}
    for letter in text:
        result[letter] = result.get(letter, 0) + 1
    return result

方案3:使用Python内置collections.Counter

Python标准库的collections.Counter专门用于统计可哈希对象的出现次数,代码更简洁高效:

from collections import Counter

def count_letters(text):
    return dict(Counter(text))

执行上述任意一种方案,都能得到你预期的结果:字母a计数为4,d为1,空格为2,g为1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 06:35:05