Czy istnieje pythoniczny sposób sortowania licznika według wartości, poza wykonywaniem poleceń listowych z odwróconym rozumieniem listowym? Jeśli tak, jest to szybsze niż to:
>>> from collections import Counter
>>> x = Counter({'a':5, 'b':3, 'c':7})
>>> sorted(x)
['a', 'b', 'c']
>>> sorted(x.items())
[('a', 5), ('b', 3), ('c', 7)]
>>> [(l,k) for k,l in sorted([(j,i) for i,j in x.items()])]
[('b', 3), ('a', 5), ('c', 7)]
>>> [(l,k) for k,l in sorted([(j,i) for i,j in x.items()], reverse=True)]
[('c', 7), ('a', 5), ('b', 3)
źródło
lamda i: -i[1]
Bardziej ogólne sortowanie, gdzie
key
słowo kluczowe określa metodę sortowania, minus przed typem liczbowym wskazuje malejąco:źródło
key
Kluczowe określa sposób sortowania, minus przed typu numerycznego wskazują na malejące