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

如何编写Python程序统计字符串中的字符出现频率?

字符串字符频率统计问题修正

原代码的问题

你的代码目前无法正确统计字符频率,核心问题有三个:

  • 每次遍历字符时都在循环内重置count = 0,导致无法累计计数,最终每个字符都输出0
  • 没有针对每个字符去统计它在整个字符串中的出现次数,只是单次循环加1,完全没实现频率统计逻辑
  • 会重复打印重复字符(比如字符串含重复字母时,会多次输出该字母的无效计数)

修正方案1:手动用字典统计

这是基础实现方式,适合理解统计逻辑:

def character_frequency(string):
    freq_dict = {}
    # 第一步:遍历字符串,统计每个字符的出现次数
    for char in string:
        if char in freq_dict:
            freq_dict[char] += 1
        else:
            freq_dict[char] = 1
    # 第二步:遍历字典,打印每个字符的频率
    result = [f"{char}: {count}" for char, count in freq_dict.items()]
    print(", ".join(result))
    # 返回频率字典(可选,根据需求决定是否保留)
    return freq_dict

# 调用函数
character_frequency("dortmund")

修正方案2:用Python内置工具Counter

Python的collections模块提供了Counter类,专门用来统计可哈希对象的频率,代码更简洁高效:

from collections import Counter

def character_frequency(string):
    freq_counter = Counter(string)
    # 生成格式化后的字符串列表,再用逗号连接打印
    result = [f"{char}: {count}" for char, count in freq_counter.items()]
    print(", ".join(result))
    return freq_counter

character_frequency("dortmund")

两种方案运行后都会输出整洁的结果:d: 2, o: 1, r: 1, t: 1, m: 1, u: 1, n: 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 11:11:20