6.1集合类型及操作
集合类型定义
集合是多个元素的无序组合
集合类型与数学的集合概念一致
集合元素之间无序,每个元素唯一,不存在相同元素
集合元素不可更改,不能是可变数据类型
在python里面:
集合用大括号{}表示,元素间用逗号分隔
建立集合类型用{}或set()
建立空集合类型,必须使用set()
举个例子:
>>> A = {"python",123,("python,123")} # 使用{}建立集合
{123,'python',('python',123)}
>>> B = set("pypy123") # 使用set()建立集合
{'1','p','2','3','y'}
>>> C = {"python",123,"python",123}
{'python',123}
集合间操作
四种基本操作
六个操作符:
操作符及应用
描述
SlT
并,返回一个新集合,包括在集合S和T中的所有元素
S-T
差,返回一个新集合,包括在集合S但不在T中的元素
S&T
交,返回一个新集合,包括同时在集合S和T中的元素
S^T
补,返回一个新集合,包括集合S和T中的非相同元素
S<=T或S
返回True/False,判断S和T的子集关系
S>=T或S>T
返回True/Fasle,判断S和T的包含关系
四个增强操作符:
操作符及应用
描述
Sl=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")
运算结果
集合处理方法
操作函数或方法
描述
S.add(x)
如果x不在集合S中,将x增加到S
S.discard(x)
移除S中元素x,如果x不在集合S中,不报错
S.remove(x)
移除S中元素x。如果x不在集合S中,产生KeyError异常
S.clear()
移除S中所有元素
S.pop()
随即返回S的一个元素,更新S,若S为空产生KeyError异常
S.copy()
返回集合S的一个副本
len(S)
返回集合S的元素个数
x in S
判断S中元素x,x在集合S中,返回True,否则返回False
x not in S
判断S中元素x,x不在集合S中,返回True,否则返回False
set(x)
将其他类型变量x转变为集合类型
举例:
>>>A={"p","y",123}
>>>for item in A:
print(item,end="")
输出:{'p',123,'y'}
>>>try:
while True:
print(A.pop(),end=""))
except:
pass
输出:空集合
集合类型应用场景
1.包含关系比较
>>>"p"in{"p","y",123}
True #判断其它的元素是否在这个集合中
>>>{"p","y"}>={"p","y",123}
False #判断数据之间的关系
**2.数据去重**
集合类型所有元素无重复
```python
>>>Is=["p",