Попробуйте это:
import operator
def dict_top_n_subset(d, n):
"""Given a dict d, return a subset dict with the top n value"""
n = min(n, len(d))
return dict(sorted(d.iteritems(), key=operator.itemgetter(1))[-n:])
Пример использования:
>>> d={1:5, 2:10, 3:7, 4:73, 5:6}
>>> dict_top_n_subset(d, 1)
{4: 73}
>>> dict_top_n_subset(d, 2)
{2: 10, 4: 73}
>>> dict_top_n_subset(d, 3)
{2: 10, 3: 7, 4: 73}
Имейте в виду, что это может использовать много памяти (2x?), Если ваш диктат огромен, и в этом случаеВы можете вручную итерировать и отслеживать свои собственные пики - но это намного сложнее, чем две строки кода.