ps:计算字符串中出现最多的字母,如果数量同样多则返回字母顺序靠前的字母
The Most Wanted Letter
import string
def checkio(text: str) -> str:
"""
大神版本:
string.ascii_lowercase取出所有字母,看在text中出现的次数,然后max
"""
# text = text.lower()
# return max(string.ascii_lowercase, key=text.count)
"""
通俗版
#filter判断str.isalpha(是否只有字母组成)取出字母,加入list
''.join合并list转换成srt,.lower()转换成小写
"""
s = ''.join(list((filter(str.isalpha, text)))).lower()
count = {}
#sorted排序s,循环写入字段count
for i in sorted(s):
count[i] = s.count(i)
#取出出现最多字母的次数
max_value = max(count.values())
# 通过values找到key
"""
方法2:
"""
# for k, v in count.items():
# if v == max_value:
# return k
"""
方法1:
"""
return list(count.keys())[list(count.values()).index(max_value)]
if __name__ == '__main__':
print("Example:")
print(checkio("Hello World!"))
#These "asserts" using only for self-checking and not necessary for auto-testing
assert checkio("Hello World!") == "l", "Hello test"
assert checkio("How do you do?") == "o", "O is most wanted"
assert checkio("One") == "e", "All letter only once."
assert checkio("Oops!") == "o", "Don't forget about lower case."
assert checkio("AAaooo!!!!") == "a", "Only letters."
assert checkio("abe") == "a", "The First."
print("Start the long test")
assert checkio("a" * 9000 + "b" * 1000) == "a", "Long."
print("The local tests are done.")