【发布时间】:2012-07-14 03:47:20
【问题描述】:
可能重复:
How to write Python sort key functions for descending values
在 Python 3 中,使用多个键按字典顺序对对象列表进行排序非常容易。例如:
items.sort(key = lambda obj: obj.firstname, obj.lastname)
reverse 参数可让您指定是升序还是降序。但是,如果您想按多个键排序,但又想对第一个键使用降序排序,而对第二个键使用升序排序,该怎么办?
例如,假设我们有一个具有两个属性的对象,points 和name,其中points 是int,name 是str。我们想按points 以降序 的顺序对这些对象的列表进行排序(这样点数最多的对象排在第一位),但是对于points 数量相等的对象,我们希望按字母顺序(升序)按name 对它们进行排序。
如何做到这一点?
【问题讨论】:
-
Ints 是一种特殊情况,因为您可以只使用负数来获得反向排序。我会对它们都是字符串的情况更感兴趣。
标签: python python-3.x