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



有一个python字符串,例如"编程";我必须找到出现次数最多的最小字母。

这是针对给定的输入字符串="0";编程";输出应该是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())

相关内容

最新更新