1. sort 函数

函数原型:

L.sort(*, key=None, reverse=None)

它把 L 原地排序,也就是使用后并不是返回一个有序的序列副本,而是把当前序列变得有序!

参数说明:

argument description
* 迭代类型的数据列表
key 函数类型,比较的原则
reverse 为 True 时逆序

Both list.sort() and sorted() have a key parameter to specify a function (or other callable) to be called on each list element prior to making comparisons.


2. 排序方法

2.1 自定义数据类型

首先定义一个 Student 类,每一个对象有学号 num 和名字 name 两个属性,对 Student 列表元素排序

class Student:

class Student:def __init__(self, num, name):self.num = numself.name = namedef __str__(self):return f'{self.num} - {self.name}'

List:

students = [Student(5, 'Tom'),Student(2, 'Tony'),Student(6, 'Lucy'),Student(1, 'Jerry')
]

2.2 compare 函数有 1 个参数

key 接受的函数类型要求 函数只有一个参数,默认按返回值的升序对列表元素排序:

cmp2 = lambda stud: stud.num
students.sort(key=cmp2, reverse=False)
for student in students:print(student)

结果如下:

1 - Jerry
2 - Tony
5 - Tom
6 - Lucy

2.3 compare 函数有 2 个参数

当比较函数有 2 个参数时,如:

def mycmp(stud1, stud2):''' return true when num is greater'''return stud1.num - stud2.num

此时需要用到 functools.cmp_to_key():

from functools import cmp_to_keycmp1 = lambda stud1, stud2: stud1.num - stud2.num
students.sort(key=cmp_to_key(cmp1))
for student in students:print(student)

结果如下:

1 - Jerry
2 - Tony
5 - Tom
6 - Lucy

3. 拓展

类似的,max 函数也有参数 key:

a = [('x', 5), ('y', 3), ('z', 8)]
print(max(a, key=lambda x: x[-1]))  # ('z', 8)

完结

Python sort 函数相关推荐

  1. python sort函数返回值_lambda函数与箭头函数在集合内置函数应用中的对照学习

    Python语言中有一个定义轻量级规则的lambda函数,其语法格式为: Lambda 参数列表:返回值表达式 简单的例子如:定义func=lambda x,y:x+y,则调用func(10,20)的 ...

  2. python sort函数时间复杂度_STL用法及其时间复杂度分析

    STL是C++语言中一个非常实用的代码库,叫做标准模板库,通常我们使用这个头文件即可导入STL.本文立足与C++,但是python其实也是大同小异. set set正如其名,表示的是一个集合,其分为两 ...

  3. python sort 函数和sorted函数的简单区别

    1. sort函数可以对列表进行排序,并改变原列表的内容 2. sored 函数返回一个新的列表

  4. python sort函数返回值_如何使用python sort函数?

    不知道大家在做项目时候,有没有遇到这个函数,记得小编第一次看到这个函数,一直纳闷这个函数的使用方法,而后查询了下,今日,小编再一次遇到这个函数,于是,就做了一番整理,内容请看下文. 与sort()函数 ...

  5. python sort函数返回值_python中 sort方法 和sorted函数

    sort和sorted在python中常用语列表(或类列表)的排序,但是在python中有所区别. 他们的唯一的共同点恐怕就是都可以对列表排序,区别: 1. sorted是python的内置函数,可以 ...

  6. python sort函数

    Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明: 一.基本形式 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不 ...

  7. python sort函数key_Python:s.sort([cmp[, key[, reverse]]])

    展开全部 s.sort([cmp[, key[, reverse]]]) 意思是sort方法接受三个参636f707932313133353236313431303231363533313333326 ...

  8. python sort函数排序_Python中排序常用到的sort 、sorted和argsort函数

    argsort函数返回的是数组值从小到大的索引值 Examples -------- One dimensional array:一维数组 >>> x = np.array([3, ...

  9. sort函数pythonreverse_Python基础 7 ---- Python内置sort和sorted函数

    1 Python对数据的排序有两种方法,一种是容器内置的sort函数,另外一种利用sorted函数 2 对于sort函数我们不再进行讨论,只要研究一下sorted函数 3 sorted函数的原形sor ...

最新文章

  1. ICCV2021 Oral SimROD:简单高效的数据增强!华为提出了一种简单的鲁棒目标检测自适应方法...
  2. Python Importlib模块与__import__详解
  3. C语言durand kerner算法求近似根roots(附完整源码)
  4. java嵌入式db_Java DB嵌入式模式
  5. linux sudo永久免密码,linux 免密码 使用sudo 直接使用root权限执行命令
  6. storm基础系列之二----zookeeper的作用
  7. Ado.Net 实体类、数据连接类、数据访问类
  8. 报告PPT|Python网络程序设计教学要点与案例分享(含音频)
  9. Python Day25
  10. 《像计算机科学家一样思考Python(第2版)》——2.7 注释
  11. 蓝桥杯 ALGO-13 算法训练 拦截导弹 Java版
  12. Hadoop架构中各个集群在开发中的作用
  13. linux 7- - watch,free,mpstat,vmstat,iostat,pidstat,df,du
  14. 2019年年终总结(流水账)
  15. oracle awr报告提取,Oracle AWR报告提取方法
  16. KunlunBase 产品使用和评测指南
  17. 心理学的应用领域有哪些?
  18. 深入存储驱动:Overlay2
  19. 怎么查询计算机二级证书快递号,计算机二级office查询成绩后的注意事项证书直邮申请17到到23号...
  20. macbook重装系统 选择方案_超详细的mac重装系统教程

热门文章

  1. 分布式多副本一致性协议paxos
  2. serializearray php,jQuery序列化表单 serialize() serializeArray()
  3. 2021年python画图方法大全
  4. 分支语句(if、if-else、if-else if...else、switch)
  5. springboot+mysql+微信小程序点餐系统-计算机毕业设计源码65933
  6. 资本狂追手术机器人,康诺思腾是如何打动美团龙珠的?
  7. bugreport 分析之chkbugreport
  8. Android应用源码基于vitamio的网络电视直播源码
  9. 第十五章 数据访问部件的应用及编程(一)
  10. 【芝麻背调百科】​员工隐瞒婚姻状况入职是否构成劳动法意义上的欺诈?