Python基础14 集合
Posted 麦克煎蛋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础14 集合相关的知识,希望对你有一定的参考价值。
集合(set)是一个无序的不重复元素序列。
当集合中的元素存在与否比其出现次序、出现次数更加重要时,我们就会使用集合。
通过使用集合,你可以测试某些元素的资格或情况,检查它们是否是其它集合的子集,找到两个集合的交集等;
一、创建集合
可以使用大括号 { } 或者 set() 函数创建集合。注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
如果要初始化一个带有值的集合,可以向set()传入一个列表。
创建格式:
>>> s = {1, 2, 3, 4, 5, 6} >>> s {1, 2, 3, 4, 5, 6} >>> set([1, 2, 3, 4, 5, 6]) {1, 2, 3, 4, 5, 6} >>> set(\'123456\') {\'3\', \'6\', \'5\', \'1\', \'2\', \'4\'}
二、集合运算
集合之间也可进行数学集合运算(例如:并集、交集等),可用相应的操作符或方法来实现。
1、子集
子集,为某个集合中一部分的集合,故亦称部分集合。
使用操作符 < 执行子集操作,也可使用方法 issubset() 完成。
>>> A = set(\'abcd\') >>> B = set(\'cdef\') >>> C = set("ab") >>> C < A True # C 是 A 的子集 >>> C < B False >>> C.issubset(A) True
2、并集
一组集合的并集是这些集合的所有元素构成的集合,而不包含其他元素。
使用操作符 | 执行并集操作,同样地,也可使用方法 union() 完成。
>>> A | B {\'c\', \'b\', \'f\', \'d\', \'e\', \'a\'} >>> A.union(B) {\'c\', \'b\', \'f\', \'d\', \'e\', \'a\'}
3、交集
两个集合 A 和 B 的交集是含有所有既属于 A 又属于 B 的元素,而没有其他元素的集合。
使用 & 操作符执行交集操作,同样地,也可使用方法 intersection() 完成。
>>> A & B {\'c\', \'d\'} >>> A.intersection(B) {\'c\', \'d\'}
4、差集
A 与 B 的差集是所有属于 A 且不属于 B 的元素构成的集合。
使用操作符 - 执行差集操作,同样地,也可使用方法 difference() 完成。
>>> A - B {\'b\', \'a\'} >>> A.difference(B) {\'b\', \'a\'}
5、对称差
两个集合的对称差是只属于其中一个集合,而不属于另一个集合的元素组成的集合。
使用 ^ 操作符执行差集操作,同样地,也可使用方法 symmetric_difference() 完成。
>>> A ^ B {\'b\', \'f\', \'e\', \'a\'} >>> A.symmetric_difference(B) {\'b\', \'f\', \'e\', \'a\'}
三、集合的基本操作
1、add 添加元素
>>> s = {1, 2, 3, 4, 5, 6} >>> s.add(\'s\') >>> s {1, 2, 3, 4, 5, 6, \'s\'}
2、remove 移除元素(如果元素不存在,会引发 KeyError)
>>> s = {1, 2, 3, 4, 5, 6} >>> s.remove(3) >>> s {1, 2, 4, 5, 6} >>> s.remove(9) Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 9
3、discard 移除元素(如果元素不存在,则不执行任何操作)
>>> s = {1, 2, 3, 4, 5, 6} >>> s.discard(9) >>> s {1, 2, 3, 4, 5, 6}
4、pop 随机删除元素并返回(如果集合为空,会引发 KeyError)
>>> s = {1, 2, 3, 4, 5, 6} >>> s.pop() # pop删除时是无序的随机删除 1 >>> s {2, 3, 4, 5, 6}
5、clear 清空集合
>>> s = {1, 2, 3, 4, 5, 6} >>> s.clear() >>> s set()
四、集合与内置函数
下述内置函数通常作用于集合,来执行不同的任务。
函数 | 描述 |
all() | 如果集合中的所有元素都是 True(或者集合为空),则返回 True。 |
any() | 如果集合中的所有元素都是 True,则返回 True;如果集合为空,则返回 False。 |
enumerate() | 返回一个枚举对象,其中包含了集合中所有元素的索引和值(配对)。 |
len() | 返回集合的长度(元素个数) |
max() | 返回集合中的最大项 |
min() | 返回集合中的最小项 |
sorted() | 从集合中的元素返回新的排序列表(不排序集合本身) |
sum() | 返回集合的所有元素之和 |
参考文章:
https://www.cnblogs.com/suendanny/p/8597596.html
https://www.jianshu.com/p/95e912bfafaf
https://www.runoob.com/python3/python3-set.html
以上是关于Python基础14 集合的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段14——Vue的axios网络请求封装
VSCode自定义代码片段14——Vue的axios网络请求封装