我编写了bellow函数来查找字符串中最频繁出现的字符,它很适合于:
以下字符串“Lorem ipsum dolor sit amet”失败。最常见的字母都有3次出现,结果是一个空字符串,而不是给我其中一个(它应该按字母顺序给第一个)
def frequent_char(text):
charset = ''.join(sorted(text))
maxcount = 0
maxchar = None
for item in charset.lower():
charcount = text.count(item)
if charcount > maxcount :
maxcount = charcount
maxchar = item
return maxchar
我不知道我在密码里犯了什么错误。有人能帮忙吗?
删除字符串中的所有空格以使其正常工作。
一个很好的解决方案是使用
collections.Counter
,请参见:http://docs.python.org/2/library/collections.html#counter-objects最常见的字符是:
如果你不在乎空间:
很简单!
空间
has four occurences in
Lorem ipsum dolor sit amet
。所以如果你的问题是
你的功能发挥得很有魅力。
编辑:
因为你在问题中同时使用了“char”和“letter”,所以不完全清楚你在问什么。因为在Python中,“char”是一个比“letter”简单得多的概念,所以我决定将您的问题解释为一个关于char的问题。
相关问题 更多 >
编程相关推荐