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

Python统计姓名列表字母频次:如何从索引值映射到对应字符?

解决获取出现次数最多字母的问题

我懂你的困扰啦——你已经成功统计出每个字母的出现次数,但卡在了把索引值转成对应字母这一步。别担心,只要加一步简单的转换就能搞定!

问题根源

你用alphaCount.index(max)得到的是该字母在alphaCount列表中的位置(比如示例里的4),这个位置刚好对应字母在字母表中的顺序(A对应0,B对应1,以此类推,E就对应4),所以我们只需要把这个索引值再转换回字符就行。

修改后的代码

在获取到索引后,用chr()函数把它转成对应的大写字母就可以了,另外我还做了几个小优化:

names = ["Euclid", "Archimedes", "Newton", "Descartes", "Fermat", "Turing", "Euler", "Einstein", "Boole", "Fibonacci", "Nash", "Wiles", "Cantor", "Gauss", "Plato"]
alphaCount = [0]*26  # 简化初始化写法,和原代码效果一致

# 统计字母出现次数
for name in names:
    for ch in name:
        x = ord(ch.upper()) - ord('A')
        alphaCount[x] += 1

print('alphaCount == ', alphaCount)
max_count = max(alphaCount)
most_common_index = alphaCount.index(max_count)
# 关键转换:把索引转成对应字母
most_common_letter = chr(most_common_index + ord('A'))
print(f"The most common letter is: {most_common_letter} (出现次数: {max_count})")

额外优化说明

  • 初始化alphaCount时用[0]*26更简洁,避免写26个0的重复代码。
  • 不要用max当变量名哦,它会覆盖Python内置的max()函数,我改成了max_count和most_common_index来避免这个问题。
  • 用f-string输出结果更直观,能同时展示字母和对应的出现次数。

运行结果示例

执行修改后的代码,会得到这样的输出:

alphaCount ==  [3, 2, 3, 2, 4, 2, 3, 2, 3, 1, 1, 2, 2, 4, 2, 0, 2, 3, 4, 1, 3, 1, 0, 0, 1, 1]
The most common letter is: E (出现次数: 4)

这样就完美解决你的问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:47:59