checkio任务之python3:计算字符串中出现最多的字母

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.")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值