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

新手上路,请多包涵

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

此代码似乎不起作用。

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

先二次排序:list5按照量级排序。接下来是初级排序:list5是根据数字的某种函数进行排序的。

原文由 Vinu K S 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 418
2 个回答

按 (firstkey, secondkey) 元组排序:

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

原文由 Pavel Anossov 发布,翻译遵循 CC BY-SA 3.0 许可协议

来自关于 排序 的 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'))

原文由 claudio 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏