如何在python中执行二级排序?

Vin*_*K S 18 python

如果我有一个数字列表,[4,2,5,1,3] 我想先通过某个函数对它进行排序f,然后对于具有相同值的数字,f我希望它按数字的大小排序.

此代码似乎不起作用.

list5 = sorted(list5)
list5 = sorted(list5, key = lambda vertex: degree(vertex)) 
Run Code Online (Sandbox Code Playgroud)

二级排序:list5根据大小排序.主要排序接下来:list5根据数字的某些功能进行排序.

Pav*_*sov 52

按(firstkey,secondkey)元组排序:

sorted(list5, key=lambda vertex: (degree(vertex), vertex))
Run Code Online (Sandbox Code Playgroud)

  • 要在一个上做升序,在另一个上做降序,两个调用: list5.sort(key=lambda vertex: vertext, reverse=True) list5.sort(key=lambda vertex: degree(vertext)) (5认同)

小智 5

在电话上,但您可以按元组排序。

sorted(list5, lambda x: (degree(x),x))
Run Code Online (Sandbox Code Playgroud)

如果需要,请不要忘记反向标志。


cla*_*dio 5

来自关于排序的 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'))
Run Code Online (Sandbox Code Playgroud)