集合类型定义
多个元素的无序组合
- 集合类型与数学中的集合概念保持一致
- 集合元素之间无序,每个元素唯一,不存在相同元素
- 集合元素不可更改,不能是可变数据类型
- 集合用大括号{}表示,元素间用逗号分隔
- 建立集合用{}或者set()
- 如果想要建立一个空的集合,必须用set()
例子
A={"python",123,(1,2,3,4)}
B=set("pypy1123") # 相当于B2
B2={'p','y','1','2','3'}
C={"python",123,"python",123} #相当于C2
C2={"python",123}
集合操作符
集合有四种基础运算方法,并,交,差,补
- S|T 并运算,返回一个新集合,包含在集合S和T中的所有元素
- S&T 交运算,返回一个新集合,包含既在S中又在T中的集合
- S-T 差运算,返回一个新的集合,包含在集合S中但是不在集合T中的元素
- S^T 补运算,返回一个新集合,包含集合S和T中的不相同元素
集合有两种关系运算操作
- S<=T或者S<T 关系运算,返回True/False,判断S和T的子集关系
- S>=T或者S>T 关系运算,返回True/False,判断S和T的包含关系
集合由四种增强运算操作
- S|=T 更新集合S,包含集合S和T中的所有元素
- S&=T 更新集合S,包含同时在集合S和T中的元素
- S-=T 更新集合S,包含在集合S中,但是不在T中的元素
- S^=T 更新集合S,包含集合S和T中的不相同元素
例子
>>>A={"p","y",123}
>>>B=set("pypy123")
>>>A-B
{123}
>>>A&B
{'p','y'}
>>>A|B
{'p','y','1','2','3',123}
>>>A^B
{123,'1','2','3'}
集合处理方法(10)
10个方法
- S.add(x) 把元素x加到集合S中,就算S中已经有了x也不会报错
- S.discard(x) 移除集合S中的元素x,就算S中没有x也不会报错
- S.remove(x) 移除集合S中的元素x,如果S中没有x,则会报错KeyError
- S.clear() 清除集合S中的所有元素
- S.pop()从集合中随意返回S的一个值,并更新S,若S为空,则产生KeyError错误
- S.copy()返回集合S的一个副本
- len(S)返回集合S中的元素的数目
- x in S 判断元素x是否包含在集合S中
- x not in S 判断元素x是否不在集合S中
- set(x) 将其他类型的变量x转换为集合类型
集合类型应用场景
-
包含关系的比较
>>>"p" in {'p','y',123} True >>>{'p','y'} >={'p','y',123} False
-
数据去重
ls=["p",'y','p','y',123] s=set(ls) # 利用集合无重复元素的特点 ls_new=list(s) # 将集合转变为list