我正在做一个练习,要求我返回一串字母中出现频率最高的字母。如果有两个字母以相同的频率出现,则以字母表中最先出现的字母为准。例如:
'aaaabbbb' #should return a.
我的退信代码如下。我承认它可能不是最有效的。我稍后会担心。
def mostWantedLetter(text):
text = text.lower()
mwl = {}
for letter in text:
if letter not in mwl:
mwl[letter] = 1
else:
mwl[letter] += 1
for letter in sorted(mwl, key = mwl.get, reverse = True):
if letter.isalpha():
#letter = sorted(list(letter))
return letter #[0]
感谢 Stack Overflow 社区帮助我走到这一步!
最佳答案
恭喜你到目前为止。我将提供两个提示:
提示 1:将 key
参数修改为 sorted()
以考虑字母的计数及其在字母表中的位置。
提示 2:研究 Python 如何比较元组。
在单独的注释中,collections.Counter
和 collections.defaultdict
值得了解。
关于python - 如何从字母选择中返回字母表中最早的字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22310292/