oeasy玩py113sorted函数_内置函数_reverse_key

sorted_排序_列表排序_list_key

回忆

  • list类 有专门的
  • 反转方法
  • reverse
  • list中的 sort方法
  • 也有 reverse 参数
  • list类的sort方法
  • 总共3个参数
  1. self 是自己
  2. key
  3. reverse
  • 后两个参数 哪个放前面都行吗?

回忆

cl = list("oeasy") cl.sort(key=ord, reverse=True) cl.sort(reverse=True, key=ord)

  • 谁在前面都可以

 

 

  • 这次在等号两边 没有空格
  • 这符合pep-8的规范吗?

pep8

 

 

  • 函数多个参数传递的时候
  • 等号两边 不要空格

for num in range(128): print(num, chr(num), sep=":")

  • 再查看帮助

帮助文件

help(list.sort)

  • 这个sort函数的帮助手册里
  • 等号两边 也没有空格

 

 

  • 都是等号 为啥规则不一样呢?

提问ai

 

 

  • 为啥 帮助手册里面
  • key 排前面?🤔

 

 

重要性

  • First things first
  1. key 是 比较的核心
  • 更重要
  1. reverse 是 次序
  • 没那么重要

 

 

  • 使用不同的排序方式 (key)
  • 列表 会有不同的结果
  • 每次都在​​原位上​​修改
  • in-place
  • 能否 不在原位上 排序?🤔

询问

 

 

  • 推荐使用sorted函数

类型

help(__builtins__)

  • builtins 中有 一些函数
  • print
  • ord
  • chr
  • sorted

 

 

  • sorted 是
  • 内建函数

求助

  • 喊救命

help(sorted)

  • 函数 返回 新列表
  • 原列表 不变

 

 

  • 三个参数
  • 按重要性排序
参数/概念 说明
iterable 可迭代对象
key 排序方法
reversed 是否反转
  • 为啥这个次序?

First things first

  1. iterable 是 排序的目标
  • 给谁排序啊
  • 对应 list.sort里面的 self
  1. key 是 比较的算法
  • 用啥比较
  1. reverse 是 次序
  • 结果队列是否 反转

 

 

  • sorted函数 的 参数列表
  • 和 list.sort 基本一样
  • list类的sort方法如何理解?

类和对象

  • 类 class
  • 是 抽象的 数据类型
  • list 就是 列表类
  • 列表类 这些 方法

 

 

  • 对象 object
  • 是 类的 实例对象
  • instance object

help(list.sort)

  • 所以 list.sort 中的 self
  • 就是对象自己
  • 他知道 给谁排序
  • 刚才的sorted函数
  • 他不知道 给谁排序
  • 需要传个 可遍历的对象进去

 

 

  • sorted 和 list.sort
  • 参数一致
  • 次序也一致
  • 重要的放前面

实验

  • 使用len进行排序
  • 返回 新结果 列表new

sl = ["12", "3"] new = sorted(sl, key=len) print(sl) print(new)

  • sorted方法
  • 不会影响sl

 

 

  • sorted函数可以使用reverse吗?

reversed

sl = ["12", "3"] new = sorted(sl, key=len, reverse=True) print(sl) print(new)

  • 可以使用reverse参数

 

 

  • sorted 函数
  • 时间复杂度是多少?

再问

  • sort时间复杂度
  • 和 list.sort 一样
  • ​也​​是 n*log(n)

 

 

  • 怎么理解?

提问

 

 

  • timsort是什么呢?

timsort

 

 

  • 一种排序算法
  • Tim Peters发明的

回忆

  • 写 python之禅 的 Tim

 

 

  • Tim Peters

 

 

  • zen of python 作者

python之禅

 

 

import this

  • 禅宗
  • 通过直觉、冥想
  • 达到 顿悟
  • 以心传心
  • 不设文字
  • 直指人心

禅意

  • 追求超越语言概念的真理

 

 

  • 对生命本质的体悟

zen

 

 

排序总结

  • 2 sort
对比维度 list.sort sorted
返回值 None 新列表
对原列表 原地修改 不改变原始对象
核心特点 节省内存 保留原数据
  • 2 参数
参数名 类型 默认值 作用说明
key 函数 None 排序依据的函数
reverse 布尔值 False 控制方向
  • 函数、方法、参数
  • 有啥区别?

总结

类别 核心定义 关键特征 简单示例
方法 依附于类/对象 谁调用就改谁 sl.reverse()
sl.sort()
函数 实现特定功能 调用时
把列表当参数传进去
sorted(sl)
参数 函数/方法
输入变量
根据参数
实现功能
sorted(reverse = True)
sl.sort(revserse = True)
  • 排好序的列表
  • 就是 ​​有序列表​
  • 再向 ​​有序列表​​ 新插 列表项
  • 就得 讲究 位置

 

 

  • 插入后
  • 有序列表
  • 还得 ​​依然​​有序
  • 那 ​​咋​​插入 呢?🤔
  • 下次再说 👋
posted on 2025-12-31 19:50  overmind1980  阅读(0)  评论(0)    收藏  举报