web-dev-qa-db-fra.com

trier un compteur en python par clés

J'ai un compteur qui ressemble un peu à ceci:

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

Je veux trier les clés spécifiquement dans un ordre alphabétique, PAS par counter.most_common()

y'a-t-il une quelconque façon de réussir cela?

19
corvid

Il suffit d'utiliser trié :

>>> 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)]
40
falsetru
>>> 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)]
8
Roman Pekar

En Python 3, vous pouvez utiliser la fonction most_common de collections.Counter: 

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

Ceci utilise la fonction most_common disponible dans collections.Counter, qui permet de rechercher les clés et les nombres de n clés les plus courantes.

1
williampli

Pour obtenir les valeurs sous forme de liste dans l'ordre trié

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