python找出字符串中字母出现的次数
发布网友
发布时间:2022-04-21 19:15
我来回答
共1个回答
热心网友
时间:2022-04-06 08:45
# -*- coding: utf-8 -*-
str_='ssdasdasefadd'
dict_char_tmp = {i:str_.count(i) for i in str_} #得到所有单词的个数
print '得到所有单词的个数:', dict_char_tmp
dict_char={}
for k,v in dict_char_tmp.items():
if dict_char.get(v):
dict_char[v].append(k)
else:
dict_char[v]=[k]
#print dict_char
dict_char_k = sorted(dict_char.items(),key=lambda item:item[1],reverse =True)
print dict_char_k
char_l= dict_char_k[0][1]
char_l.sort()
print '得到出现次数最多的字母:',char_l[0],',个数是:',dict_char_k[0][0]
>>> ================================ RESTART ================================
>>>
得到所有单词的个数: {'a': 3, 's': 4, 'e': 1, 'd': 4, 'f': 1}
[(4, ['s', 'd']), (1, ['e', 'f']), (3, ['a'])]
得到出现次数最多的字母: d ,个数是: 4
>>>
追问这段程序有bug的,如果是"helloworld"输入的话,输出就是o,但是实际上运行后应该输出l。
追答
把 dict_char_k = sorted(dict_char.items(),key=lambda item:item[1],reverse =True)
改成 dict_char_k = sorted(dict_char.items(),key=lambda item:item[0],reverse =True)