Python统计字符串中字母出现次数的三种实现方式

拾柒
拾柒
发布时间:2026-10-11 | 3人浏览过
原创

本文介绍在Python中统计字符串内字母出现次数的三种方法。通过字典手动累加、利用get方法简化逻辑,以及使用count函数直接统计,展示了不同场景下的实现思路。所有方法均返回字典格式结果,后两种内置函数方式更为简洁高效。

基础实现:手动遍历与字典累加

最直观的方法是遍历字符串中的每个字符,利用字典记录出现次数。若字符不在字典中,则初始化为1;若已存在,则值加1。这种方法逻辑清晰,适合理解底层计数原理。

s = 'helloworld'
d = dict()
for x in s:
    if x not in d.keys():
        d[x] = 1
    else:
        d[x] = d[x] + 1
print(d)

进阶技巧:利用字典get方法

Python字典的get方法可以指定默认值,从而简化代码结构。通过d2.get(x, 0)获取当前计数,若不存在则返回0,随后加1并赋值。这种方式减少了条件判断语句,使代码更加紧凑。

s = 'helloworld'
d2 = dict()
for x in s:
    d2[x] = d2.get(x, 0) + 1
print(d2)

直接统计:使用count函数

对于简单的统计需求,可以直接利用字符串的count方法。遍历字符串中的每个字符,调用s.count(x)获取其在整个字符串中的出现次数。虽然这种方法在长字符串中效率较低(时间复杂度较高),但代码最为简短直观。

s = 'helloworld'
d3 = dict()
for x in s:
    d3[x] = s.count(x)
print(d3)

特定场景:仅统计英文字母

当需要忽略标点符号、数字或其他非字母字符,且要求结果按字母表顺序排列时,可以采用更复杂的处理逻辑。以下代码展示了如何仅统计26个英文字母的出现次数,并返回有序列表。

方法一:基于ASCII码值统计

通过判断字符的ASCII码值是否在'a'到'z'之间,利用索引偏移量将字母映射到0-25的列表中。这种方法不依赖字典,直接通过数学计算定位位置。

def countchar(str):
    str = str.lower()  # 统一转为小写
    ans = []
    for i in range(26):  # 初始化26个0
        ans.append(0)
    for i in str:
        if (ord(i) >= ord('a') and ord(i) <= ord('z')):
            ans[ord(i) - ord('a')] = ans[ord(i) - ord('a')] + 1
    return ans

if __name__ == "__main__":
    str_input = input()
    print(countchar(str_input))

方法二:基于字典与键列表

先生成包含26个字母的键列表,利用dict.fromkeys初始化字典。遍历字符串时,使用count方法统计每个字母在字符串中的出现次数并存入字典。最后遍历键列表,从字典中按顺序取值,确保结果有序。

def countchar(st):
    keys = [chr(i + 97) for i in range(26)]  # 生成26个字母的key列表
    di = dict().fromkeys(keys, 0)  # 赋给每个key初始值0
    new = []  # 建立一个新列表用于存放有序的key
    st = st.lower()  # 将所有输入的字符改为小写
    for s in st:  # 遍历字符串
        di[s] = st.count(s)  # 输出每个字符的个数,存放到字典里
    for k in keys:  # 遍历keys, 将其在di中的值添加到新列表,获得有序的26个字母的个数
        new.append(di[k])
    return new  # 返回存有26个字母个数的列表

if __name__ == "__main__":
    st = input()  # 输入字符串
    str1 = ""  # 定义一个空字符串
    for s in st:  # 遍历输入的字符串
        if s.isalpha() != 0:  # 只有字母才添加到新字符串,标点忽略不计
            str1 += s
    print(countchar(str1))  # 输出列表

以上就是Python统计字符串中字母出现次数代码实例的详细内容,更多关于Python字符串处理与字典应用技巧的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表