目录
集合概念
集合是多个元素的无序组合
-集合类型与数学中的集合概念一致
-集合元素之间无序,每个元素唯一,不存在相同元素
-集合元素不可更改,不能是可变数据类型
-集合用大括号{}表示,元素间用逗号分隔
-建立集合类型用{}或set()
-建立空集合类型,必须使用set()
ps:集合类型元素不可修改,列表类型是可以被修改的数据类型,一旦列表类型放到集合类型中就有可能出错,但两者可以进行转换,类表类型转换为集合类型时会删除相同元素
集合操作符
集合之间有一定的关系,可以进行一定的运算
6个基础操作符(形成新的集合)
S|T(并) | 返回一个新集合,包括在集合S和T中的所有元素 |
S-T(减) | 返回一个新集合,包括在集合S但不在T中的元素 |
S&T(交) | 返回一个新集合,包括同时在集合S和T中的元素 |
S^T(补) | 返回一个新集合,包括集合S和T中的非相同元素 |
S<=T或S<T | 返回Ture/False,判断S和T的子集关系 |
S>=T或S>T | 返回Ture/False,判断S和T的包含关系 |
4个增强操作符(更新S集合)
S|=T | 更新集合S,包括在集合S和T中的所有元素 |
S-=T | 更新集合S,包括在集合S但不在T中的元素 |
S&=T | 更新集合S,包括同时在集合S和T中的元素 |
S^=T | 更新集合S,包括集合S和T中的非相同元素 |
操作函数或方法
S.add(x) | 如果x不在集合S中,将x增加到S |
S.discard(x) | 移除S中元素x,如果x不在集合S中,不报错 |
S.remove(x) | 移除S中元素x,如果x不在集合S中,产生KeyError异常(如果程序中有异常处理,可以使用S.remove(x))) |
S.clear() | 移除S中所有元素 |
S.pop() | 随即返回S的一个元素,更新S,若S为空产生KeyError异常 |
S.copy() | 返回集合S的一个副本 |
len(S) | 返回集合S的元素个数 |
x in S | 判断S中元素x,x在集合S中,返回Ture,否则返回False |
x not in S | 判断S中元素x,x不在集合S中,返回Ture,否则返回False |
set(x) | 将其他类型变量x转变为集合类型 |
集合的常见应用场景
1.包含关系比较
2.数据去重