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: