python练习作业题

问题如下:
输入字符串,输出字符串中出现次数最多的字符及其出现次数。

如果有多个字符出现次数一样,则按字符编码值升序顺序输出字符及其出现次数。

要求:使用字典实现。

a = input("")
b = set(a)
c = {}
for i in b:
if i.isalpha():
c[i] = a.count(i)
if c == {}:
print("no alpha")
else:
max1 = max(c.values())
data = list(c.items())
data.sort()
for i in data:
if i[1] == max1:
print('{}:{}'.format(i[0],i[1]))
这个代码当有数字的时候出不来,请问在哪里修改

帮你写好代码了,望采纳


可以使用 Python 内置的字典数据结构来实现这个需求。首先,需要创建一个空字典,然后遍历输入的字符串,对于每个字符,如果该字符已经在字典中,则将该字符对应的值加 1;如果该字符不在字典中,则将该字符作为键,并将值设置为 1。最后,可以按照题目要求对字典排序,并输出出现次数最多的字符及其出现次数。

Python 代码实现:

# 定义一个空字典
char_dict = {}

# 输入字符串
s = input("请输入字符串: ")

# 遍历字符串中的每个字符
for c in s:
    # 如果该字符已经在字典中,则将该字符对应的值加 1
    if c in char_dict:
        char_dict[c] += 1
    # 如果该字符不在字典中,则将该字符作为键,并将值设置为 1
    else:
        char_dict[c] = 1

# 将字典按照题目要求排序,并输出出现次数最多的字符及其出现次数
char_list = sorted(char_dict.items(), key=lambda item: (item[1], ord(item[0])))
print("出现次数最多的字符是: " + char_list[-1][0])
print("该字符出现的次数为: " + str(char_list[-1][1]))