Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1
---
- oeasy Python 0140
- 这是 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`
---- 上次学习了 ai时代下
- 综合使用 容器对象的方式
- 向ai询问过程
- 先明确 数据结构
- 再 细分 步骤
- 肯定成果 指出问题
- 小步快跑 迅速迭代
- 这还真是一个大总结呢😱
- 容器 就是 装东西的 东西
- 瓶瓶罐罐 之类 的
- 里面 放着 各种菜(具体数据)
- 处理完了 也放在 容器 里面
- 容器里面 有容器 怎么理解?
- 比如 这个 托盘
- 盘子 是 菜的 容器
- 托盘 是 盘子的 容器
- 桌子 是 托盘的 容器
- 厨房 是 桌子的 容器
- python 编程中
- 有什么样的 容器呢?
- 序列类
- 列表
- 元组
- 字符串
- 集合类
- set 集合
- frozenset 冰封集合
- 字典类
- 字典 dict
- 从次序上来对比
- 序列类都是有顺序的
- sequence 就是序列
- 序列序列
- 有序的排列
- 序列序列
- 序列这个词怎么来的呢?
- sequence 这个单词来自于
- *sekw-
- 跟着的
- to follow
- 跟着 第一个 的 是
- 第二个
- second
- second
- 秒 是 对小时的第二次分隔
- subsequent
- sub 往下
- sequent 跟随
- 往下跟随
- 随后而来的
- 接下来 下一个
- consequence
- con 共同的
- sequence 跟随
- 共同跟随的
- 随之而来的
- 结局
- 后果
- 因为有后果
- 所以很重要
- sequential
- 跟随着的
- 有次序的
- 线性的
- sequence
- 序列
- 有顺序的排列
- 集合 和 字典 有顺序吗?
- 集合 是 没有顺序的
{1, 2}
{2, 1}
d = {"cat": "猫", "dog": "狗"}
d
d = {"dog": "狗", "cat": "猫"}
d
- popitem的时候
- 就先pop新的 、
help(dict.popitem)
- 集合和字典 都是 大括号
- 他俩 什么关系 呢?
| 特性 | 字典 | 集合 |
|---|---|---|
| 有序? | ✅ 有序 | ❌ 无序 |
| 结构? | 键值对 | 纯元素 |
| 唯一? | 键唯一 | 元素唯一 |
| 可索引? | ✅ 可索引 | ❌ 不可索引 |
- 字典 在最开始的时候
- 就是 键值对 的集合
- 是无序的
- 为什么 现在 会变成有序 呢?
type({})
- 不过可以看出
- 字典 比 集合 重要
- 来看个 字典的例子
- 颜色字典 有 两个颜色
- 大红 (0xff, 0x21, 0x21)
- 石青 (0x17, 0x22, 0x34)
colors= {
"dahong": (255, 33, 33),
"shiqing": (23, 34, 52)
}- 那这个字典 该 怎么查 呢??
- 可以 把元组 改成 字典 吗?
colors = {
"dahong": {
"r": 255,
"g": 33,
"b": 33
},
"shiqing": {
"r": 23,
"g": 34,
"b": 52
}
}
colors
- 这样是可以吗?
- 尝试调用
colors
colors["dahong"]
colors["dahong"]["r"]
colors["dahong"]["g"]
colors["dahong"]["b"]
- 可以进行索引
- 元组 和 字典 哪个好呢?
- 字典 对于 变量描述更清晰
- 元组更简洁
colors2 = {
"dahong": (255,33,33),
"shiqing": (23, 34, 52)
}
colors2
- rgb 规则 固定的
- 元组序列 比 字典
- 更适合做value
- 来看个 更复杂点的例子
- 访问https://www.dota2.com.cn/hero/elder_titan
- 检查元素
- 筛选分类xhr
- 观察响应
- 可以看到 这是列表容器
- 列表项 是 字典dict
-
结构非常明确
-
容器的可变性呢?
| 类型名称 | 描述 | 是否可变类型 | 是否有顺序 | 举例 |
|---|---|---|---|---|
| 列表 | list | 是 | 是 | [1,2,3]、["a","b"],list(1,2) |
| 元组 | tuple | 否 | 是 | (1,2) |
| 字符串 | str | 否 | 是 | "oeasy" |
| 字节序列 | bytes | 否 | 是 | b"oeasy" |
| 集合 | set | 是 | 否 | {1, 2, 3} |
| 冰冻集合 | frozenset | 否 | 否 | frozenset([1,2,3]) |
| 字典 | dict | 是 | 否 | {'a':1,'b':2} |
- 集合项 必须是 常量
- 怎么理解?
- 字典的 key 也必须是 可哈希的
- 列表变量 不能作为字典的key
- 集合项 必须是 可哈希的
- 但是可以把 列表项
- 转化为 集合项
set([1, 2, 3])
type(set([1, 2, 3]))
type(frozenset([1, 2, 3]))
- 转化
- 把 容器类 和 数据类
- 汇总 起来
- 这些就是我们接触到的各种容器
| 类型名称 | 描述 | 可变性 | 举例 |
|---|---|---|---|
| 列表 | list | 是 | [1,2,3]、["a","b"],list(1,2) |
| 元组 | tuple | 否 | (1,2) |
| 字符串 | str | 否 | "oeasy" |
| 集合 | set | 是 | set([1,2,3]) |
| 不可变集合 | frozeset | 否 | frozenset([1,2,3]) |
| 字典 | dict | 是 | {'a':1,'b':2} |
- 根据这些容器可以跑什么流程吗?🤔
- 下次再说 👋
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。























