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

Python 2.7字符频率统计编程求助:实现字符出现次数统计

解决Python 2.7字符出现次数统计问题

嘿,你已经迈出了关键的第一步——把输入字符串转成字符列表,接下来的计数环节其实很简单,我给你两种实用的方案,一步步来:

方法一:手动遍历字典统计

字典的键值对刚好适配「字符-出现次数」的映射关系,逻辑直白易懂:

  • 先初始化一个空字典用来存计数结果
  • 遍历你转好的字符列表,逐个更新每个字符的计数

完整代码示例:

string = raw_input("Enter a string: ")
newString = list(string)

# 初始化空字典用于存储计数
count_dict = {}

for char in newString:
    if char in count_dict:
        # 字符已存在,计数加1
        count_dict[char] += 1
    else:
        # 字符首次出现,初始化为1
        count_dict[char] = 1

# 输出最终计数结果
print(count_dict)

测试输入google.com的话,会输出{'g': 2, 'o': 3, 'l': 1, 'e': 1, '.': 1, 'c': 1, 'm': 1}(注:Python 2.7的字典默认无序,但计数完全准确;如果需要按次数排序可以额外处理,你的需求里没要求顺序的话这样就足够了)

方法二:用collections.Counter(更简洁高效)

Python 2.7的collections模块自带Counter类,专门用来做可迭代对象的计数,一行代码就能搞定统计,非常省心:

from collections import Counter

string = raw_input("Enter a string: ")
newString = list(string)

# 直接用Counter完成统计
counts = Counter(newString)

# Counter对象可直接转为字典输出
print(dict(counts))

如果想要让输出和你示例里的顺序一致(按出现次数从多到少排列),可以再加一行排序代码:

# 按出现次数降序排序,转成字典后输出
sorted_counts = sorted(counts.items(), key=lambda x: x[1], reverse=True)
print(dict(sorted_counts))

这样输入google.com就会输出{'o': 3, 'g': 2, '.': 1, 'e': 1, 'l': 1, 'm': 1, 'c': 1},和你给出的示例完全匹配!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:37:53