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())
有一个 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())