一、基本概念
注意点:
- 无序可变
- 用大括号表示{}
- 集合中只能包含不可变类型数据,eg: 数字,字符串,元组
- 集合不支持用下标访问特定位置的元素,因为无序性
- 不支持random库的choice函数
- 支持random库的sample函数
- set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
- set是无序的,重复元素在set中自动被过滤。
- 也可以用len()函数,in 和 not in;
二、集合常用函数
1、add函数和update函数
2、pop函数和remove函数和discard函数
3、也可以用copy()函数来进行浅复制
注意:
- pop函数随机删除,并有删除元素的返回值
- remove函数若元素不存在会发生错误
- discard函数不会发生错误,若没有该元素自动忽略本次操作 (推荐使用)
- set()函数将字典转换为集合时,只保留键值,
三、集合运算(交、并、补、差、异或)
在对集合做运算时,不会影响原来的集合,而是返回一个运算结果
# 在对集合做运算时,不会影响原来的集合,而是返回一个运算结果
# 创建两个集合
s = {1,2,3,4,5}
s2 = {3,4,5,6,7}
# & 交集运算
result = s & s2 # {3, 4, 5}
# | 并集运算
result = s | s2 # {1,2,3,4,5,6,7}
# - 差集
result = s - s2 # {1, 2}
# ^ 异或集 获取只在一个集合中出现的元素
result = s ^ s2 # {1, 2, 6, 7}
# <= 检查一个集合是否是另一个集合的子集
# 如果a集合中的元素全部都在b集合中出现,那么a集合就是b集合的子集,b集合是a集合超集
a = {1,2,3}
b = {1,2,3,4,5}
result = a <= b # True
result = {1,2,3} <= {1,2,3} # True
result = {1,2,3,4,5} <= {1,2,3} # False
# < 检查一个集合是否是另一个集合的真子集
# 如果超集b中含有子集a中所有元素,并且b中还有a中没有的元素,则b就是a的真超集,a是b的真子集
result = {1,2,3} < {1,2,3} # False
result = {1,2,3} < {1,2,3,4,5} # True
# >= 检查一个集合是否是另一个的超集
# > 检查一个集合是否是另一个的真超集
print('result =',result)