Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1
---
- oeasy Python 0127
- 这是 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`
---- 上 学习了 冰封集合
- 不能修改的 集合
- 就是 冰封集合
- 集合 有啥运算 呢?🤔
- 高中数学中有集合的运算
- 交集
- 并集
- 差集
- 需要先有 两个集合
l = list(range(10))
l
s1 = set(l[::2])
s2 = set(l[::3])
- 两个集合
- s1 十以内能被2整除的数字
- s2 十以内能被3整除的数字
- 构成集合的状态
- 看看交集
- 交集
- 两个集合都有的元素构成的集合
- 中间的共有部分
- intersection
- 既在s1这个section
- 又在s2这个section
- intersection
- 看看效果
- 交集方法 不会影响 两个列表本身
- 交集运算 有运算符 吗?
- 交集运算符 &
- 效果与intersection函数一样
- 都是求交集
- 说有这么一个数字
- 三个三个数 余二
- 五个五个数 余三
- 七个七个数 余二
- 问这个数是多少?
- 这样我们就得到了所有被三整除余 2 的数字
- 不要翻页
- 把后面 独立完成吧!
l = list(range(100))
s1 = set(l[2::3])
s2 = set(l[3::5])
s3 = set(l[2::7])
s1 & s2 & s3
- 运行结果
- 观察答案
- 交集之后是并集
- union 指的是联合
- 把两个集合和到一起
- 试一试
l = list(range(10))
l
s1 = set(l[::2])
s2 = set(l[::3])
s1.union(s2)
- 运行结果
- 两个集合的并集
- 并集运算 不会 影响原列表
- 可以并集 有 运算符 吗?
- |
- 就是求并
- 就是union运算
- 可以连续运算吗?
s1 = {1}
s2 = {1, 2}
s3 = {1, 2, 3}
- 开始运算
- 一般都是 从左往右计算 的
s1 = {0}
s2 = {1}
s1 | s1 & s2
- 运算结果
- 可是 这个 如何理解?
{0} & {1}
- 不是应该得到空集吗?
- 运算符 有优先级
- 就像 先乘除 后加减 一样
- & 和 | 的优先级
- 是不同的
s1 = {0}
s2 = {1}
s1 | s1 & s2
s1 | (s1 & s2)
- 优先级
- 先 &(交)
- 后 |(并)
- 如果我就想 先并后交 呢?
(s1 | s1) & s2
- 有括号的要优先
- 得到 空集
- 还有啥运算?
help(set.difference)
- 新运算 差值运算
- 如何理解difference?
- 词根来自于拉丁
- 后来成为古法语
- 最后成为英语单词
- 后来成为古法语
- di
- 分开
- ferre
- 抚养的
- difference
- 分开抚养的
- 不同
s1 = set(list(range(10))[::2])
s2 = set(list(range(10))[::3])
- 代码
s1.difference(s2)
s2.difference(s1)
- 效果
- 差集获得
- 差集 不影响 原集合
- 差集 也有 运算符 吗?
s1 - s2
s2 - s1
- 既然可以从s1 中刨除 s2
- 就可以从s2 中刨除 s1
- 得到的差集(difference)
- 这俩有点对称
- s1 - s2
- s2 - s1
- 不过 还不算 真对称
- 有一种 symmetric_difference
- 什么意思?
- symmetric [sɪ'metrɪk]
- symmetry [ˈsɪmətri]
- syn-
- 同步的
- 一起的
- *me
- 度量
- measure 测量
- meter 测量装置
- month 计算月份
- 度量
- 一起度量
- 对称
- symmetric_difference
- 对称差集
- 具体计算
- 对称差集 中的 元素
- 要么 在 这个集合
- 要么 在 那个集合
- 不同时 在两个集合
- 像 逻辑运算中的 异或
- 如何理解对称呢?
- s1对于s2的对称差集
- 就是s2 对于 s1 的对称差集
- 这很对称
- 可以有 运算符 吗?
- 再试试
- 可以把 对称差集
- 理解成
交或者并吗??
- 理解成
s1 = set(list(range(10))[::2])
s2 = set(list(range(10))[::3])
s1 & s2
s1 | s2
s1 | s2 - s1 & s2
(s1 | s2) - (s1 & s2)
(s1 - s2) | (s2 - s1)- 注意运算的时候要加括号
- 对称差集本质上是
- 并集减去交集
- 这次学习了集合的运算
- 集合总共四种运算
| 运算名称 | 方法名 | 运算符 |
|---|---|---|
| 交集 | intersection | & |
| 并集 | union | | |
| 差集 | difference | - |
| 对称差集 | symmetric_difference | ^ |
- 这些运算可以做增强赋值吗?🤔
- 就像 i += 1那样
- 下次再说 👋
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。







































