python 字符串中出现次数最多的最小字母表

Smallest alphabet with maximum occurences in python string

有一个 python 字符串,例如“programming” 我必须找到出现次数最多的最小字母。

这是给定的输入字符串=“编程” 输出应该是 g 2

我试过了,但无法实现解决方案

str1 = 'programming'


max_freq = {}
for i in str1:
    if i in max_freq:
        max_freq[i] += 1
    else:
        max_freq[i] = 1
res = max(max_freq, key = max_freq.get) 

任何帮助将不胜感激

您可以使用 Counter 来实现。

  • 使用 Counter 计算每个字母出现的频率。这会给你一个 dict
  • 先按值降序排序dict,然后按键值升序排序
  • 第一项就是你的答案
from collections import Counter
str1 = 'programming'
d = Counter(str1)

d = sorted(d.items(), key= lambda x: (-x[1], x[0]))
print(d[0])
('g', 2)

为了使您的代码正常工作,请用此替换最后一行

res = sorted(max_freq.items(), key=lambda x: (-x[1], x[0]))[0]

res 将具有出现次数最多的最小字母。即 ('g', 2)

您很接近,只是没有正确获得最大值。如果你只关心数字,那么你可以稍微修改你的例子:

str1 = 'programming'


max_freq = {}
for i in str1:
    if i in max_freq:
        max_freq[i] += 1
    else:
        max_freq[i] = 1
res = max(max_freq.values())