For the top 3 step by step:
>>> from operator import itemgetter >>> dct = {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5} >>> sorted(dct.items(), key=itemgetter(1), reverse=True) [('e', 5), ('d', 4), ('c', 3), ('b', 2), ('a', 1)] >>> map(itemgetter(0), sorted(dct.items(), key=itemgetter(1), reverse=True)) ['e', 'd', 'c', 'b', 'a'] >>> map(itemgetter(0), sorted(dct.items(), key=itemgetter(1), reverse=True))[:3] ['e', 'd', 'c']
Or using the heapq module
>>> import heapq >>> heapq.nlargest(3, dct.items(), key=itemgetter(1)) [('e', 5), ('d', 4), ('c', 3)] >>> map(itemgetter(0), _) ['e', 'd', 'c']