Skip to content

Latest commit

 

History

History
374 lines (261 loc) · 7.49 KB

File metadata and controls

374 lines (261 loc) · 7.49 KB
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询问过程
    1. 先明确 数据结构
    2. 再 细分 步骤
    3. 肯定成果 指出问题
    4. 小步快跑 迅速迭代

图片描述

  • 这还真是一个大总结呢😱

首先什么是容器

  • 容器 就是 装东西的 东西
    • 瓶瓶罐罐 之类 的
    • 里面 放着 各种菜(具体数据)
  • 处理完了 也放在 容器 里面

图片描述

  • 容器里面 有容器 怎么理解?

容器嵌套

  • 比如 这个 托盘
    • 盘子 是 菜的 容器
    • 托盘 是 盘子的 容器
    • 桌子 是 托盘的 容器
    • 厨房 是 桌子的 容器

图片描述

  • python 编程中
    • 有什么样的 容器呢?

容器类型

  • 序列类
    • 列表
    • 元组
    • 字符串
  • 集合类
    • set 集合
    • frozenset 冰封集合
  • 字典类
    • 字典 dict

容器次序

  • 从次序上来对比
    • 序列类都是有顺序的

图片描述

  • sequence 就是序列
    • 序列序列
      • 有序的排列
  • 序列这个词怎么来的呢?

序列类型

  • sequence 这个单词来自于
    • *sekw-
    • 跟着的
    • to follow

图片描述

second

  • 跟着 第一个 的 是
    • 第二个
    • second

图片描述

  • second
    • 秒 是 对小时的第二次分隔

subsequent

  • subsequent
    • sub 往下
    • sequent 跟随
    • 往下跟随

图片描述

  • 随后而来的
    • 接下来 下一个

consequence

  • consequence
    • con 共同的
    • sequence 跟随
    • 共同跟随的
    • 随之而来的
    • 结局
      • 后果

图片描述

  • 因为有后果
    • 所以很重要

sequential

  • sequential
    • 跟随着的
    • 有次序的
    • 线性的

图片描述

sequence

  • 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
  • 来看个 更复杂点的例子

实践!

图片描述

  • 可以看到 这是列表容器
    • 列表项 是 字典dict

bejson

图片描述

  • 结构非常明确

  • 容器的可变性呢?

容器对象是否可变

类型名称 描述 是否可变类型 是否有顺序 举例
列表 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 即可。