持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情
1️⃣概述
在python中,集合是一组无序元素,各元素之间无法重复。
集合的元素可以是各种数据类型的不可变对象。
也就是说,集合的每个元素都是独一无二的,且是不可变对象。
我们将不同的值存放在集合里,不同的集合间用来做关系运算。
2️⃣创建集合
💭方式一:
使用大括号{ }创建一个集合,元素之间用逗号隔开。
📌注意:
- 创建集合时,python会自动删除重复的元素
✨如图:
💭方式二:
使用函数set()来创建集合。
📌注意:
- 只能使用
set()函数来创建空集合
✨如图:
3️⃣集合的运算
🔴并集 |
- 并集运算指的是创建一个新集合,其包含两个旧集合的所有元素。
✨如图:
🟠交集 &
- 交集运算指的是创建一个新集合,其包含两个旧集合的公共元素。
✨如图:
🟡差集 -
交集运算指的是在前一个集合中挑选后一个集合没有的元素而组成的集合
比如差集
A-B返回了由集合A中有的元素而集合B没有的元素组成的集合。
✨如图:
🟢对称差^
- 对称差是由两个旧集合中并不重叠的元素组成的新集合
✨如图:
取两个集合的并集,再去掉二者的交集,就是对称差集合。
🔵子集
- 如果集合
A的任意一个元素都是集合B的元素,那么称集合A是集合B的子集- 我们可以通过
A<=B来判断A是否是B的子集
✨如图:
📌注意:
- 如果集合
A的任意一个元素都能在集合B中找到,并且集合A不等于集合B,那么我们称集合A是集合B的真子集。- 我们可以通过
A<B来判断A是否是B的真子集
✨如图:
🟣超集
- 如果集合
A是集合B的一个子集,那么我们称B是A的一个超集- 我们用符号
B>=A来判断B是否是A的一个超集
✨如图:
📌注意:
- 如果集合
A的任意一个元素都能在集合B中找到,并且集合A不等于集合B,那么我们称集合B是集合A的真超集。- 我们可以通过
B>A来判断B是否是A的真超集
✨如图:
4️⃣集合的操作
🔴集合的长度
🔑用法:
len()
✨如图:
🟠集合的检查
🔑用法:
我们使用关键字in来判断某元素是否在集合中。
✨如图:
🟡集合的合并
🔑用法:
我们可以使用A |= B来将集合B的元素都并入集合A中
✨如图:
5️⃣集合的方法
🌱----add()
🔑用法:
- 该方法用于向集合中添加元素
注意:
如果添加集合已有的元素,则不执行任何操作。
✨如图:
🌱----discard()
🔑用法:
- 该方法用于删除集合中指定的元素
注意:
如果指定删除的元素并不存在,系统也不会报错。
✨如图:
🌱----remove()
🔑用法:
- 该方法用于删除集合中指定的元素
注意:
如果指定删除的元素并不存在,系统会报错。(与discard()方法区分开)
✨如图:
🌱----pop()
🔑用法:
- 该方法用于删除集合中任意一个元素
注意:
如果对空集合使用该方法,就会抛出KeyError异常
✨如图:
🌱----clear()
🔑用法:
- 该方法用于删除集合中的所有元素吗,即将集合变为空集合
✨如图:
🌱----copy()
🔑用法:
- 该方法用于复制一个集合
✨如图:
🌱----update()
🔑用法:
- 该方法用于添加新的元素或集合
注意:
添加的过程中忽略重复的元素
✨如图:
例1:
例2:
🌱----union()
🔑用法:
- 该方法类似于并集运算
注意:
该方法需要和update()方法区分开,集合使用union()后只是返回了一个集合,但使用方法的集合本身并没有改变。
✨如图:
🌱----intersection()
🔑用法:
- 该方法类似于交集运算
✨如图:
🌱----intersection_update()
🔑用法:
- 该方法类似于交集运算
注意:
要与intersection()方法区分开
✨如图:
🌱----difference()
🔑用法:
- 该方法类似于差集运算
✨如图:
🌱----difference_update()
🔑用法:
- 该方法类似于差集运算
注意:
要与difference()方法区分开
✨如图:
🌱----symmetric_difference()
🔑用法:
- 该方法类似于对称差运算
✨如图:
🌱----issubset()
🔑用法:
- 该方法用于判断集合是否是所给参数的子集
✨如图:
下面例子中表明,集合x2是集合x1的一个子集。
🌱----issuperset()
🔑用法:
- 该方法用于判断集合是否是所给参数的超集
✨如图:
下面例子中表明,集合x1是集合x2的一个超集。
🌱----isdisjoint()
🔑用法:
- 该方法用于判断两个集合是否不包含相同的元素
✨如图:
如果两个集合没有相同的元素,则返回True,否则返回False.
6️⃣写在最后
好了,今天的笔记就到这里,欢迎大家到评论区一起讨论!