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

2024-04-27 16:05:48 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有一个数字列表[4,2,5,1,3] 我想先用函数f对它进行排序,然后用数值相同的数字f对它进行排序。

这段代码似乎不起作用。

list5 = sorted(list5)
list5 = sorted(list5, key = lambda vertex: degree(vertex)) 

先进行二次排序:list5是根据大小排序的。 主排序下一步:list5是根据数字的某些函数排序的。


Tags: lambdakey函数代码列表排序数字数值
3条回答

在电话里,但你可以按元组排序。

sorted(list5, lambda x: (degree(x),x))

如果你需要的话,别忘了倒旗。

从Python 3文档的sorting

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'))

按(firstkey,secondkey)元组排序:

sorted(list5, key=lambda vertex: (degree(vertex), vertex))

相关问题 更多 >