python中按字母顺序排列的字符串中经常出现的字符,不使用con

2024-06-25 23:14:55 发布

您现在位置:Python中文网/ 问答频道 /正文

问题是如何找到字符串中出现频率最高的字符。最常出现的字符必须是降序输出。在并列的情况下,即发生相同的情况,必须按字母顺序输出相同频率的字符。你知道吗

例如:

s="aaccbba"

输出应该是

(('a',3),('b',2),('c',2))

而不是

(('a',3),('c',2),('b',2))

注意:您不应该使用控制流语句

我使用的python版本是2.7.5

我甚至试过用计数器,但没用。你知道吗


Tags: 字符串版本顺序字母计数器情况语句字符
1条回答
网友
1楼 · 发布于 2024-06-25 23:14:55

使用^{}

>>> from collections import Counter
>>> Counter("aaccbba").most_common()
[('a', 3), ('c', 2), ('b', 2)]

输出可以排序:

>>> sorted(Counter("aaccbba").most_common(), key=lambda v: (-v[1], v[0]))
[('a', 3), ('b', 2), ('c', 2)]

但实际上,先列出b和先列出c之间并没有真正的区别;否则它们是相等的。你知道吗

对输出进行排序会起到双重作用;Counter()已经为您对它的项目进行了排序,以上只是用稍微不同的标准再次对批次进行排序。你知道吗

相关问题 更多 >