Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0112
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
- 本教程同步发布在:
- 个人网站: `https://oeasy.org`
- 蓝桥云课: `https://www.lanqiao.cn/courses/3584`
- GitHub: `https://github.com/overmind1980/oeasy-python-tutorial`
- Gitee: `https://gitee.com/overmind1980/oeasypython`
---- 配套视频
- 上次我们了解
列表排序- 原地 完成
- in-place
- 排序规则 依赖于 列表项类型
| 数据类型 | 比较规则 |
|---|---|
| 数字型 | 基于数字直接比 |
| 字符串 | 转化为ASCII码 |
- 我就想让 字符串 和 数值 一起排序
- 有可能吗?
- 类型不同
- 不能比较
lst = ["oeasy", 123]
lst.sort()- TypeError
- 不支持比较 int 和 str
- 如果 都 转成
字符串呢?
- 将 str这个函数名
- 赋给 sort方法的参数
- key
lst = ["oeasy", 123]
lst.sort(key = str)- 效果
- 为啥会这样?
- 比较的时候 用了 str函数
str("oeasy")
str(123)
str("oeasy") < str(123)
- 用str 转化123后
- 都成了 字符串
- 就可以
比较了
- 既然可以把整型int
- 转化为str
- 那么 可以 反过来 吗?
lst = ["oeasy", 123]
lst.sort(key = int)
- 出错了
- 为啥呢?
int("oeasy")
- "oeasy" 字符串 不能转化为 整型数值int
- 换个 能转化的
lst = ["999", 123]
lst.sort(key = int)
- 能转化 就能比较
- 能比较 就能排序
- 还有啥函数
- 可以当
key?
- 可以当
- key 是排序方法
- len 得到字符串长度
sl = ["oeasy", "o2zz", "o3z"]
print(sl)
sl.sort(key = len)
print(sl)- len 函数观察每个列表项
- 作为排序的依据
- 具体是
怎么排的?
len("o3z")
len("o2zz")
len("oeasy")
- 通过len得到长度
- 根据长度进行排序
- sort还有啥参数?
help(list.sort)
- 除了 key 之外
- 还有一个 参数
- reverse
- 这
reverse啥意思?
sl = ["oeasy", "o2zz", "o3z"]
print(sl)
sl.sort()
print(sl)- 默认情况
- 逐个 根据字符串中字符
- ascii排序
- reverse 怎么用呢?
- reverse的意思是 反转
sl.sort(reverse = True)
print(sl)
sl.sort(reverse = False)
print(sl)- 如果reverse 是 True
- 就翻转
- 'e' > '3' > '2'
- 如果 reverse 是 False
- 就不反转
- 默认值 是 False
- 之前也有个reverse
- 之前的是 reverse方法
- 和 sort方法一样
- 都是 list类的方法
- 负责 反转列表
- 和 sort方法一样
sl.sort()
sl.reverse()
sl
- 新方式 是 list类sort方法中
- 使用reverse参数
sl.sort(reverse = True )
- 一句话搞定
- 在排序的同时
- 完成列表的反转
- 回忆 key的值
sl.sort(key = len)
print(sl)- 此时 reverse 是
- 默认值(False)
- 按长度排序
- 5 > 4 > 3
- key = len 的时候
- reverse 是 True 会如何?
- 两个参数
sl.sort(key = len, reverse = True)
print(sl)
- 反转效果
- 两个参数调用的时候 有次序吗??
- 调换 参数 次序
sl.sort(key = len, reverse = True)
sl.sort(reverse = True, key = len)
- 哪个参数 放前面都以
- 去总结吧!🐸
-
list类 有专门的
- 反转方法
- reverse
-
list中的 sort方法
- 也有 reverse 参数
-
list类的sort方法
- 总共3个参数
- self 是自己
- key
- reverse
- 后两个参数 哪个放前面都行
- 总共3个参数
- 后两个 为啥 帮助手册里面
- key 排前面?🤔
- 下次再说 👋
- 配套视频
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。


















