按字母顺序排列具有相同计数的元素 - Python计数器
问题描述:
Python集合Counter.most_common(n)
方法返回前n个元素及其计数。但是,如果两个元素的计数相同,如何返回按字母顺序排序的结果?按字母顺序排列具有相同计数的元素 - Python计数器
例如:像一个字符串:BBBAAACCD
,对于 “两最常见的” 元素,我希望得到的结果是:
[('A', 3), ('B', 3), ('C', 2)]
和NOT:
[('B', 3), ('A', 3), ('C', 2)]
注意尽管A
和B
具有相同的频率,但A
在结果列表中出现在B
之前,因为它以字母顺序出现在B
之前。
[('A', 3), ('B', 3), ('C', 2)]
我该如何做到这一点?
答
from collections import Counter
print(sorted(Counter('AAABBBCCD').most_common(3)))
这个问题似乎是重复 How to sort Counter by value? - python
+0
这不起作用。如果你使'A'不是最常见的,它会解除most_common并按字母顺序返回。 – AgentBawls
http://*.com/questions/20950650/how-to-sort-counter-by-value-python –
可能的复制[如何按价值排序计数器? - 蟒蛇](http://*.com/questions/20950650/how-to-sort-counter-by-value-python) – justderb
@HarshaW不,它不是重复的。我刚刚更新了我的问题,以澄清我试图达到的目标。请回顾并让我知道你是否有一些想法。 – stfd1123581321