按照最高值排序字典?

这个问题在这里已经有了答案:

  • 如何按价值对字典进行排序? 38个答案
  • 如何按值排序Python字典5个答案

  • sorted(myDict, key=myDict.get, reverse=True)
    

    这是一种做法:

    >>> myDict = {'seven': 7, 'four': 4, 'one': 1, 'two': 2, 'five': 5, 'eight': 8} 
    >>> sorted(myDict.iterkeys(), key=lambda k: myDict[k], reverse=True)
    ['eight', 'seven', 'five', 'four', 'two', 'one']
    

    (受这个答案的启发)

    它使用内置的功能sorted (与reverse=True获得最高到最低),以及key参数是用来设置排序键的功能。 在这种情况下,它是一个lambda获取相应的字典值,但它可以是几乎任何东西。 例如,您可以使用operator.itemgetter(1)myDict.get (如其他答案所示operator.itemgetter(1)或任何其他排序函数(不包括值)。


    您可以使用items来获得对键值的列表,并sorted使用您的标准对它们进行排序:

    myList = sorted(myDict.items(), key=lambda x: x[1], reverse=True)
    

    如果你使用ipython,你可以键入myDict。 tabtab ,你会得到所有函数的列表。 您也可以输入print myDict.items.__doc__并获得快速文档。

    关键参数是一个在比较之前应用于元素的函数。 由于items返回对的列表,并且对对的第二个元素进行排序,所以key是一个从元组中获取第二个元素的函数。

    当然,可以使用以下命令来摆脱items呼叫:

    myList = sorted(myDict, key=myDict.get, reverse=True) #posted in another answer
    
    链接地址: http://www.djcxy.com/p/18151.html

    上一篇: Sort dict by highest value?

    下一篇: Python: How to sort a dictionary by key