python之统计字符串中的字符个数

本文介绍了一道Python编程题,要求统计字符串中所有字母的出现次数,不区分大小写。作者分享了思路、参考代码及代码注意事项,包括如何避免使用保留字,优化计数方法,以及考虑代码执行效率的问题。同时,给出了改进后的代码和速度测试结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.贴题

题目来自MOOC
《用Python玩转数据》(南京大学)
第三周编程作业


定义函数countchar()按字母表顺序统计字符串中所有出现的字母的个数(允许输入大写字符,并且计数时不区分大小写)。形如:

def countchar(str):
      ... ...
     return a list
if __name__ == "__main__":
     str = input()
     ... ...
     print(countchar(str))

输入格式:
字符串

输出格式:
列表

输入样例:
Hello, World!

输出样例:
[0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 3, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0]
时间限制:500ms内存限制:32000kb


2.说明

这道题确实费了一些功夫。
思路为以字母为key,出现次数为value建立字典,然后根据输入的字符串调用函数输出value值。(此处有一个坑,在后面说明)。

3.参考代码

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: 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值