如果我有一个数字列表[4,2,5,1,3]
我想首先通过某个函数f
对其进行排序,然后对于具有相同值f
的数字进行排序,我希望按照数字的大小对其进行排序。
此代码似乎无效。
list5 = sorted(list5)
list5 = sorted(list5, key = lambda vertex: degree(vertex))
第二次排序:list5根据幅度排序。 主要排序接下来:list5根据数字的某些功能进行排序。
答案 0 :(得分:47)
按(firstkey,secondkey)元组排序:
sorted(list5, key=lambda vertex: (degree(vertex), vertex))
答案 1 :(得分:3)
来自sorting
上的Python 3文档from operator import itemgetter, attrgetter
student_objects = [
Student('john', 'A', 15),
Student('jane', 'B', 12),
Student('dave', 'B', 10),
]
student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
#The operator module functions allow multiple levels of sorting. For example, to sort by grade then by age:
sorted(student_tuples, key=itemgetter(1,2))
sorted(student_objects, key=attrgetter('grade', 'age'))
答案 2 :(得分:2)
在手机上,但您可以按元组排序。
sorted(list5, lambda x: (degree(x),x))
如果需要,请不要忘记反向标记。