finding top k largest keys in a dictionary python

前端 未结 5 1052
自闭症患者
自闭症患者 2020-12-09 00:08

Lets say I have a dictionary:

{key1:value1........... keyn:valuen}

So lets say I want to write a function

def return_top_k(         


        
5条回答
  •  北荒
    北荒 (楼主)
    2020-12-09 00:20

    For 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 heapq module

    >>> import heapq
    >>> heapq.nlargest(3, dct.items(), key=itemgetter(1))
    [('e', 5), ('d', 4), ('c', 3)]
    >>> map(itemgetter(0), _)
    ['e', 'd', 'c']
    

提交回复
热议问题