【问题标题】:Smallest alphabet with maximum occurences in python stringpython字符串中出现次数最多的最小字母表
【发布时间】:2021-10-08 08:31:41
【问题描述】:

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

对于给定的输入字符串 = "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) 

任何帮助将不胜感激

【问题讨论】:

  • 您能解释一下最小字母表的意思吗?
  • 你的意思是ASCII码吗
  • 是的,它的意思是ASCII码

标签: python scripting


【解决方案1】:

您可以使用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)

【讨论】:

  • 非常感谢,这个问题我压力很大
【解决方案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())

【讨论】:

    猜你喜欢
    • 2017-01-04
    • 2011-04-03
    • 2021-03-19
    • 1970-01-01
    • 2022-11-12
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多