python - 查找句子中字母的最高频率 - python
问题描述
我是python的初学者,我想制作一个程序来显示给定句子中字母的最高频率。但是,该程序只使用一个值,并且只显示频率最高的字母之一。
我已经尝试过创建一个列表,以便将最大值添加到其中,以便显示多个字母及其值。但是,问题是第一个值总是会出现,因为它大于 0。
sentencecount = input("Please enter a sentence:\n")
print(f"The length of your sentence is {len(sentencecount)}.")
lettercount = {}
for i in sentencecount:
if i in lettercount:
lettercount[i] += 1
else:
lettercount[i] = 1
print(lettercount)
maximum=0
x='a'
listofletters = []
for x, y in lettercount.items():
if y >= maximum:
maximum=y
letter =x
listofletters.append(letter)
listofletters.append(maximum)
print(listofletters)
解决方案
我建议你使用collections.Counter
:
from collections import Counter
sentence = "aaaabbbbcccc"
counter = Counter(sentence.lower().strip())
print(counter) # Counter({'a': 4, 'b': 4, 'c': 4})
print(counter.most_common(1)) # [('a', 4)]
和方法确保您获得lower()
与strip()
上述相同的结果'a Aaabb Bbc cc C'
。
如果您想选择所有出现频率最高的字母:
from collections import Counter
sentence = "aaaabbbbcccc"
counter = Counter(sentence.lower().strip())
most_common = counter.most_common()
max_occurrence = most_common[0][1]
res = [letter for letter, occurrence in most_common if occurrence == max_occurrence]
# ['a', 'b', 'c']
推荐阅读
- javascript - 无法覆盖预定义的 h1 值
- azure - 我有一个包含 3 个带有私有端点的应用服务的应用服务计划,从应用服务 B 到应用服务 C 的调用失败并出现 403 禁止错误
- apache-spark - Source.getBatch 和模式与 qe.analyzed.schema?
- javascript - 连续两次成功单击“开始”后如何运行“停止”?
- firebase - SwiftUI:如何播放下一个音频
- node.js - 我尝试制作一个不和谐的机器人,但在尝试激活它时出现此错误
- kotlin - 错误---->任务:expo-permissions:compileDebugKotlin FAILED
- arrays - matlab二维数组搜索相等的条目
- django - PSQL 上的 Django ORM 查询索引使用
- webpack - 使用 react-app-rewired 时如何指定 webpack 标志?