人生苦短, 我选 Python
前文传送门
小白学 Python(1): 开篇 https://www.geekdigging.com/2019/10/12/2870915863/
小白学 Python(2): 基础数据类型 (上) https://www.geekdigging.com/2019/10/13/2870915864/
小白学 Python(3): 基础数据类型 (下) https://www.geekdigging.com/2019/10/15/25090937/
小白学 Python(4): 变量基础操作 https://www.geekdigging.com/2019/10/17/2392286754/
小白学 Python(5): 基础运算符 (上) https://www.geekdigging.com/2019/10/18/999362065/
小白学 Python(6): 基础运算符 (下) https://www.geekdigging.com/2019/10/20/2416267271/
小白学 Python(7): 基础流程控制 (上) https://www.geekdigging.com/2019/10/22/979409150/
小白学 Python(8): 基础流程控制 (下) https://www.geekdigging.com/2019/10/23/2184234984/
小白学 Python(9): 基础数据结构 (列表)(上) https://www.geekdigging.com/2019/10/23/3066758654/
小白学 Python(10): 基础数据结构 (列表)(下) https://www.geekdigging.com/2019/10/25/1277177083/
小白学 Python(11): 基础数据结构 (元组) https://www.geekdigging.com/2019/10/26/1783681326/
小白学 Python(12): 基础数据结构 (字典)(上) https://www.geekdigging.com/2019/10/27/1304658395/
小白学 Python(13): 基础数据结构 (字典)(下) https://www.geekdigging.com/2019/10/27/2327215405/
小白学 Python(14): 基础数据结构 (集合)(上) https://www.geekdigging.com/2019/10/29/2327215406/
集合内置方法
集合和列表, 字典, 元组等一样, 都提供了很多的内置方法.
既然是集合, 那我们先看下这张经典的韦恩图 (Venn diagram):
具体的实现代码如下:
- set1 = {
- 1, 2, 3, 4, 5, 6
- }
- set2 = {
- 4, 5, 6, 7, 7, 9
- }
- # 求交集
- set3 = set1.intersection(set2)
- print('交集:', set3)
- # 求并集
- set4 = set1.union(set2)
- print('并集:', set4)
- # 做差
- set5 = set1.difference(set2)
- print('做差:', set5)
结果如下:
交集: {4, 5, 6}
并集: {1, 2, 3, 4, 5, 6, 7, 9}
做差: {1, 2, 3}
set.add()
作用: 为集合添加元素
- set6 = {
- 1, 2, 3
- }
- set6.add(4)
- print(set6)
- set6.add('python')
- print(set6)
- set6.add((1, 2))
- print(set6)
结果如下:
- {
- 1, 2, 3, 4
- }
- {
- 1, 2, 3, 4, 'python'
- }
- {
- (1, 2), 1, 2, 3, 4, 'python'
- }
- set.update()
作用: 给集合添加元素
- set7 = {
- 1, 2
- }
- set7.update({
- 3, 4, 'python', (4, 5)
- })
- print(set7)
结果如下:
{1, 2, 3, 4, 'python', (4, 5)}
好像看起来 update() 和 add() 功能是一样的, 区别在于 add() 参数只能是单个元素, 而 update() 中的参数是一个 set 集合.
set.pop()
作用: 随机移除元素.
- set7.pop()
- print(set7)
结果如下:
{2, 3, 4, 'python', (4, 5)}
随机删除, 个人感觉功能可能有点没什么实际作用, 毕竟是随机删除...
set.remove()
作用: 移除指定元素.
相比较上面 pop() 的随机删除, 在删除元素的时候更多的我们是使用的 remove() 或者下面我们将要介绍的 discard().
- set8 = {
- 1, 2, 3, 4
- }
- set8.remove(4)
- print(set8)
结果如下:
{1, 2, 3}
如果删除的元素不存在, 则会直接报错.
set8.remove(9)
结果如下:
- Traceback (most recent call last):
- File "F:/project/python-learning/base-data-set/Demo1.py", line 34, in <module>
- set8.remove(9)
- KeyError: 9
- set.discard()
作用: 删除集合中指定的元素, 元素不存在则什么都不做.
- set8.discard(9)
- print(set8)
结果如下:
- {
- 1, 2, 3
- }
- set.clear()
作用: 清除集合中的所有元素, 并不会清除集合.
- set9 = {
- 1, 2, 3
- }
- set9.clear()
- print(set9)
结果如下:
- set()
- set.isdisjoint()
作用: 判断两个集合是否包含相同的元素, 如果没有返回 True, 否则返回 False.
- set10 = {
- 1, 2, 3
- }
- set11 = {
- 1, 2
- }
- set12 = {
- 4, 5
- }
- print(set10.isdisjoint(set11))
- print(set10.isdisjoint(set12))
结果如下:
- False True
- set.issubset()
作用: 判断指定集合是否为该方法参数集合的子集.
- print(set11.issubset(set10))
- print(set12.issubset(set10))
结果如下:
- True False
- set.issuperset()
作用: 判断该方法的参数集合是否为指定集合的子集.
- print(set10.issuperset(set11))
- print(set10.issuperset(set12))
结果如下:
True False
注意哦, issubset() 和 issuperset() 是不一样的哦, 看起来都是判断子集, 但是参数的含义是不一样的.
各位同学一定要自己动手敲代码哦~~
示例代码
本系列的所有代码小编都会放在代码管理仓库 GitHub 和 Gitee 上, 方便大家取用.
示例代码 - GitHub
示例代码 - Gitee
来源: https://www.cnblogs.com/babycomeon/p/11803062.html