如何在Python中多列出字典列表?

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

  • 如何根据Python中字典的值对字典列表进行排序? 17个答案

  • 在排序的比较过程中,您可以使用这两个键的这两个值作为当前字典的代表。

    sorted(test, key=lambda x: (-d['ratio'], d['delta']))
    

    将根据ratio的降序先排序,如果值相等, delta升序排序。


    在这里,我们否定d['ratio'] ,因为默认情况下, sorted升序排序。 因为我们希望ratio的最大值在一开始,所以我们否定该值,以便最大ratio将被视为最小ratio 。 (例如,在取值1,10和100之后,-100将是最小的)。

    我们希望Python使用ratiodelta 。 所以,我们将它们的值返回到一个元组中。 当Python比较两个字典时,它将字典对象作为参数调用key函数并获取两个元组,并将它们进行比较以确定两个元组中的较小者。 首先,它比较元组的第一个元素,如果它们是相同的,那么将比较第二个元素。


    简单如下:

    from operator import itemgetter
    
    >>> result = sorted(test, key=itemgetter('-ratio'))
    >>> result = sorted(result, key=itemgetter('delta'))
    
    链接地址: http://www.djcxy.com/p/70769.html

    上一篇: How to multisort list of dictionaries in Python?

    下一篇: Sort list of dictionaries by date in Python 3.4