Gunakan Counter.most_common()
metode ini , ini akan mengurutkan item untuk Anda :
>>> from collections import Counter
>>> x = Counter({'a':5, 'b':3, 'c':7})
>>> x.most_common()
[('c', 7), ('a', 5), ('b', 3)]
Ini akan melakukannya dengan cara yang seefisien mungkin; jika Anda meminta Top N dan bukan semua nilai, a heapq
digunakan sebagai pengganti pengurutan lurus:
>>> x.most_common(1)
[('c', 7)]
Di luar penghitung, pengurutan selalu dapat disesuaikan berdasarkan key
fungsi; .sort()
dan sorted()
keduanya menerima callable yang memungkinkan Anda menentukan nilai untuk mengurutkan urutan input; sorted(x, key=x.get, reverse=True)
akan memberi Anda pengurutan yang sama seperti x.most_common()
, tetapi hanya mengembalikan kunci, misalnya:
>>> sorted(x, key=x.get, reverse=True)
['c', 'a', 'b']
atau Anda dapat mengurutkan hanya pada (key, value)
pasangan nilai yang diberikan :
>>> sorted(x.items(), key=lambda pair: pair[1], reverse=True)
[('c', 7), ('a', 5), ('b', 3)]
Lihat cara penyortiran Python untuk informasi lebih lanjut.
lamda i: -i[1]
Urutan yang lebih umum, di mana
key
kata kunci menentukan metode pengurutan, minus sebelum tipe numerik menunjukkan menurun:>>> x = Counter({'a':5, 'b':3, 'c':7}) >>> sorted(x.items(), key=lambda k: -k[1]) # Ascending [('c', 7), ('a', 5), ('b', 3)]
sumber
key
kunci mendefinisikan metode pengurutan, minus sebelum tipe numerik menunjukkan turun