Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1
---
- oeasy Python 0125
- 这是 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
- 加法、乘法运算
- 索引
- 切片
- index
- len
- max
- min
- 序列的东西他全能用
- 都属于序列
- 有序的排列
- 可以用 序列的 方法操作
- 有
无序的容器 吗??🤔
- 括号类型
- 小括号对应的是元组 tuple
- 不可变的序列
- 中括号对应的是列表 list
- 可变的序列
- 元组 tuple 是只读的序列
- 小括号对应的是元组 tuple
(0, 1)
type((0, 1))
type([0, 1])
type({0, 1})
- 大括号对应的是什么数据类型呢?
- set 这词怎么来的?
- 最早 来自于 宗教教派
- 类似的 一群人
- 坐(sit) 在一起 讨论
- 许多具有 相似性或天然亲和力的 人或事
- 一组一套 某种东西
- python 怎么理解 set呢?
help(set)
- set 是集合
- 集合是一个容器类型
- 无序 的
- 内部元素唯一 的
- 这怎么理解呢?
- 我们先来看看
- 无序
[0, 1] == [1, 0]
{0, 1} == {1, 0}- 元组、列表 是 序列类
- 有次序的
- set容器里面的元素
- 没有顺序的
- 如何理解 内部元素
唯一呢?
- 列表元素 可以雷同的
[0, 1]
[0, 1, 1]
{0, 1, 1}- 同类项 会被合并
- 集合容器的两个特点
- 无序
- 元素唯一
l = []
type(l)
l.append(0)
l.append(1)
l
l.insert(0, -1)
l
- 回忆 列表 如何 添加列表项
- 集合 用 啥方法 呢?
- 键入s.之后
- 按下tab 得到提示
- 集合的 添加方法
- 用的是add
- 如果 集合里 已经有了这个元素
- 那么 add函数 就没有 任何效果
s = set()
s
s.add(1)
s
s.add(2)
s.add(3)
s
s.add(1)
s
- 列表里 可以有 相同列表项
- 集合里 元素 必须唯一
- 这有
什么意义吗?
- 比如
- 已经 收录的元素
- 不用 重复 收录
- 元素唯一性
- 集合中的元素 都是不同的
- 相同的 就会被合并
- 集合 可以 清空 吗?
- help(set.clear)
- 这个和列表一样
- 列表 list 是 清空 所有的列表项
- 集合 set 是 清空 所有的集合项
- 这个有点太猛了
- 想 只删除
某个元素 呢?
- 想 只删除
- 找到删除函数remove
- 删除指定的集合项元素
s = {1, 2, 3}
s.remove(1)
s
s.remove(2)
s
s.remove(3)
s
s.remove(4)
- 被删除的
必须得是 集合的 元素
- 找不到
- 就会
报错
- 就会
- 集合 set.remove
- 很像 列表 list.remove
l = [0, 1]
l.remove(2)
- 如果 remove 不存在的元素
- 都要报错
- 集合也一样
s.remove("a")
- 一样 报错
- 有不报错的方法么?
- discard 丢弃
help(set.discard)
- 有 就删掉
- 没有 就忽略
- 不报错
- 还有 和删除 相关的 吗?
- 试试
- 如果 集合 空了
- 就不能
pop了 - 报KeyError
- 就不能
- 如果集合里有元素
- 就弹出一个并返回
- pop弹栈方法
- 列表类 也有
- 列表总在 尾部 弹出 列表项
- 但是集合 是 无序的
- 弹出 也和定义次序 不相关
- 这和 list 是不同的
| 类型 | pop() 行为 |
|---|---|
| list | 有序 无参弹最后一个 支持指定索引 |
| set | 无序 随机弹一个 不支持传参 |
-
集合 有2个特点
- 无序
- 元素唯一
-
集合方法
| 方法名 | 功能说明 |
|---|---|
| add | 添加元素,已存在则无操作 |
| clear | 清空集合所有元素 |
| remove | 删除指定元素,不存在则报错 |
| discard | 删除指定元素,不存在则无操作 |
| pop | 随机删除并返回一个元素,空集合则报错 |
- 不能修改 的 列表 是 元组
- 不能修改的 集合 是
什么呢?🤔 - 下次再说 👋
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。























