gpt4 book ai didi

python - 按字母顺序排列具有相同数量的元素

转载 作者:太空狗 更新时间:2023-10-30 00:18:58 25 4
gpt4 key购买 nike

Python 集合 Counter.most_common(n) 方法返回前 n 个元素及其计数。但是,如果两个元素的计数相同,如何返回按字母顺序排序的结果?

例如:对于像这样的字符串:BBBAAACCD,对于“2-most common”元素,我希望结果是针对指定的n = 2:

[('A', 3), ('B', 3), ('C', 2)]

而不是:

[('B', 3), ('A', 3), ('C', 2)]

请注意,尽管 AB 具有相同的频率,但 A 在结果列表中排在 B 之前因为它按字母顺序排在 B 之前。

[('A', 3), ('B', 3), ('C', 2)]

我怎样才能做到这一点?

最佳答案

虽然这个问题已经有点老了,但我想提出一个非常简单的解决方案来解决这个问题,它只涉及在创建 Counter 对象本身之前对 Counter() 的输入进行排序。如果您随后调用 most_common(n),您将获得按字母顺序排序的前 n 个条目。

from collections import Counter

char_counter = Counter(sorted('ccccbbbbdaef'))
for char in char_counter.most_common(3):
print(*char)

导致输出:

b 4
c 4
a 1

关于python - 按字母顺序排列具有相同数量的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43464573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com