本文介绍了计数器:具有相等计数的订购元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
文档为,
我对一种简洁的方法感兴趣,即首先通过频率/值的降序(默认值)进行排序,然后通过键的升序进行排序。 (键只是 .most_common()
中每个元组的第0个元素。)
I'm interested in a concise way to order first by frequency/value descending (the default), but then secondarily by key, ascending. (Key is just the 0th element of each tuple from .most_common()
.)
示例:
from collections import Counter
arr1 = [1, 1, 1, 2, 2, 3, 3, 3, 5]
arr2 = [3, 3, 3, 1, 1, 1, 2, 2, 5] # Same values, different order
print(Counter(arr1).most_common())
print(Counter(arr2).most_common())
# [(1, 3), (3, 3), (2, 2), (5, 1)]
# [(3, 3), (1, 3), (2, 2), (5, 1)]
所需的结果(对于 arr2
和 arr2
而言):
Desired result (for both arr2
and arr2
):
[(1, 3), (3, 3), (2, 2), (5, 1)]
推荐答案
只需对其进行适当排序:
Just sort it appropriately:
sorted(Counter(arr2).most_common(), key=lambda x: (-x[1], x[0]))
这篇关于计数器:具有相等计数的订购元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!