如何在Python中多列出字典列表?
这个问题在这里已经有了答案:
在排序的比较过程中,您可以使用这两个键的这两个值作为当前字典的代表。
sorted(test, key=lambda x: (-d['ratio'], d['delta']))
将根据ratio
的降序先排序,如果值相等, delta
升序排序。
在这里,我们否定d['ratio']
,因为默认情况下, sorted
升序排序。 因为我们希望ratio
的最大值在一开始,所以我们否定该值,以便最大ratio
将被视为最小ratio
。 (例如,在取值1,10和100之后,-100将是最小的)。
我们希望Python使用ratio
和delta
。 所以,我们将它们的值返回到一个元组中。 当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