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

使用字典去重:Python重复项种类统计函数Bug排查求助

问题排查与修复

原代码存在的Bug

  • 重复计数逻辑错误:第二个循环遍历原文本的每个字符,只要字符出现次数>1就累加计数,导致重复字符每出现一次就加1(比如某字符出现4次,会累加4次),而非统计重复的字符种类数。
  • 空文本判断无效:len(text) != ""是整数与字符串比较,永远为False,空文本会进入else分支,但判断逻辑完全错误。
  • 返回类型不统一:else分支返回字符串"0",正常情况返回整数,类型不一致。

修复后的代码

def duplicate_count(text):
    text = text.lower()
    count_dict = {}
    # 统计每个字符的出现次数
    for char in text:
        count_dict[char] = count_dict.get(char, 0) + 1
    # 统计出现次数≥2的字符种类数
    duplicate_types = 0
    for count in count_dict.values():
        if count > 1:
            duplicate_types += 1
    return duplicate_types

修复说明

  1. 替换第二个循环:改为遍历统计字典的values(),每个字符只检查一次,确保统计的是重复的字符种类数而非总重复次数。
  2. 移除无效判断:空文本时count_dict为空,遍历后duplicate_types自然为0,无需额外判断。
  3. 修正变量名:将dict改为count_dict,避免覆盖Python内置的dict类型。
  4. 统一返回类型:所有情况均返回整数,保证函数逻辑一致性。

测试验证

  • 输入"aaaa" → 返回1(正确统计1种重复字符)
  • 输入"aabbcc" → 返回3(正确统计3种重复字符)
  • 输入"" → 返回0(空文本无重复)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 13:50:25