Python 统计字符串中各个字母出现的次数,按字母顺序输出各个字母及其出现次数,不分大小写。

下面是学习过程中遇到的一个问题,试了几遍都不成功,高手能否帮一下忙?非常感谢!

题目要求:统计字符串中各个字母出现的次数,按字母顺序输出各个字母及其出现次数,不分大小写。

# -*- coding: utf-8 -*-

words = input('请输入一个英文句子:')
d =  ____
for letter in words:
    letter = ____
    if letter.isalpha():
        if letter in d:
            ____ = ____ + 1
letters = sorted(_____)
for letter in letters:
    print(letter,____)

或者是

# -*- coding: utf-8 -*-

words = input('请输入一个英文句子:')
d = {}
for letter in words:
    letter = letter.upper()
    if letter.isalpha():
        d[letter] = d.get(letter,0) + 1
letters = sorted(d.keys())
for letter in letters:
    print(letter,d[letter])

 

# -*- coding: utf-8 -*-

words = input('请输入一个英文句子:')
d = {}
for letter in words:
    letter = letter.upper()
    if letter.isalpha():
        if letter in d:
            d[letter] = d[letter] + 1
        else:
            d[letter] = 1
letters = sorted(d.keys())
for letter in letters:
    print(letter,d[letter])

如果是填空题,感觉这题目有点问题,如果是自己写的代码,这个 letter = ____和for letter in words有冲突了

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m

我学到的思路是这样的:

s = "asasd1112223"
ss = sorted(set(s), key=lambda x:s.count(x)*1000-ord(x),reverse=True)

print(ss)
['1', '2', 'a', 's', '3', 'd']

一句话解决,如果问题欢迎讨论。
同时这也是第四届MindCon超级挑战赛的一道赛题。

题目是编写python代码统计“python之禅”中每个英文字母出现的次数(不区分大小写)。注意需要按次数升序排列,输出格式为每行4个字母及其个数。