用键在python中排序计数器

时间:2013-07-29 17:51:12

标签: python python-2.7 dictionary

我有一个看起来有点像这样的计数器:

Counter: {('A': 10), ('C':5), ('H':4)}

我想按字母顺序对键进行排序,而不是counter.most_common()

有没有办法实现这个目标?

5 个答案:

答案 0 :(得分:41)

只需使用sorted

>>> from collections import Counter
>>> counter = Counter({'A': 10, 'C': 5, 'H': 7})
>>> counter.most_common()
[('A', 10), ('H', 7), ('C', 5)]
>>> sorted(counter.items())
[('A', 10), ('C', 5), ('H', 7)]

答案 1 :(得分:8)

>>> from operator import itemgetter
>>> from collections import Counter
>>> c = Counter({'A': 10, 'C':5, 'H':4})
>>> sorted(c.items(), key=itemgetter(0))
[('A', 10), ('C', 5), ('H', 4)]

答案 2 :(得分:1)

在Python 3中,您可以使用collections.Counter:{/ p>的most_common函数

x = ['a', 'b', 'c', 'c', 'c', 'd', 'd']
counts = collections.Counter(x)
counts.most_common(len(counts))

这使用collections.Counter中提供的most_common函数,它允许您查找n最常用键的键和计数。

答案 3 :(得分:0)

要以排序顺序将值作为列表获取

array              = [1, 2, 3, 4, 5]
counter            = collections.Counter(array)
sorted_occurrences = list(dict(sorted(counter.items())).values())

答案 4 :(得分:0)

sorted(counter.items(),key = lambda i: i[0])

例如:

arr = [2,3,1,3,2,4,6,7,9,2,19]
c = collections.Counter(arr)
sorted(c.items(),key = lambda i: i[0])

外部:     [(1,1),(2,3),(3,2),(4,1),(6,1),(7,1),(9,1),(19,1)] 如果要获取字典格式,请

dict(sorted(c.items(),key = lambda i: i[0]))