集合
集合的是可变的容器
集合内的数据对象都是唯一的(不能重复多次的)
集合是无序的存储结构,集合中的数据没有先后关系
集合内的元素必须是不可变对象
集合是可迭代对象
集合是相当于只有键没有值的字典(键则是集合的数据)
集合的构造函数 set
set() 创建一个空的集合对象(不能用{}创建空集合)
set(iterable) 用可迭代对象创建一个新的集合对象
集合的运算:
交集,并集,补集,子集,超集
& 生成两个集合的交集
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s3 = s1 & s2 # s3 = {2, 3}| 生成两个集合的并集
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s3 = s1 | s2 # s3 = {1, 2, 3, 4}- 生成两个集合的补集
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s3 = s1 - s2 # 生成属于s1但不属于s2的所有元 素的集合^ 生成两个集合的对称补集
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s3 = s1 ^ s2 # (s1 - s2) | (s2 - s1)
# {1, 4}> 判断一个集合是另一个集合的超集
< 判断一个集合是另一个集合的子集
s1 = {1, 2, 3}
s2 = {2, 3}
s1 > s2 # True s1 为 s2的超集
s1 < s2 # False s2 为 s1的子集== != 集合相同/不同
s1 = {1, 2, 3}
s2 = {3, 2, 1}
s1 == s2
in , not in 运算符
等同于字典in,not in,
作于集合中,判断某个值是否存在于集合中
集合和字典的优点:
in / not in运算符的判断速度快些
集合推导式
集合推导式是用可迭代对象生成集合的表达式
语法:
{表达式 for 变量 in 可迭代对象 [if 真值表达式]}
固定集合 frozenset
固定集合是不可变的,无序的, 含有唯一元素的集合
作用:
固定集合可以作为字典的键,还可以作为集合的值
固定集合的构造函数:
frozenset() 创建一个空的固定集合
frozenset(iterable) 用可迭代对象创建固定集合
固定集合的运算:
& 交集, | 并集, - 补集, ^ 对称补集
< <= > >= == !=
in / not in
(以上运算符和 集合 set中的用法完全一致)
固定集合的方法
相当于集合的全部方法去掉修改集合的方法