python找出字符串中字母出现的次数

发布网友

我来回答

1个回答

热心网友

# -*- 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)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
1.463246s