1.集合类型
集合是大于等于0个元素的无序组合,用{}表示,元素间用逗号隔开;用{}或set()函数建立集合,但空集合必须用set()函数。
特点:集合元素之间无序,每个元素唯一(不存在相同元素),元素不可更改,不能是可变数据类型,而是字符串、整数型、浮点型、元组(因为可变数据类型元素是可以被更改的,一旦集合中的元素被更改就有可能和别的元素一样,导致集合出错)。
2.集合类型操作符
S|T 并:返回一个新的集合,包括S和T的所有元素;
S-T 差:返回一个新的集合,包括S但不在T中的元素;
S&T交:返回一个新的集合,S和T共有的元素;
S^T补:返回一个新的元素,包含S和T中非相同的元素;
S<=T(S
增强操作符有:
S|=T,S-=T,S&=T,S^=T即将上述返回的新的元素更新S集合。
>>> A={'py',12,123,12,1} #{1, 123, 12, 'py'}
>>> B={'p','py',123,1}
>>> A|B
{1, 'p', 12, 123, 'py'}
>>> A-B
{12}
>>> A&B
{1, 123, 'py'}
>>> A^B
{'p', 12}
>>> A>B #A不包含B
False
>>> A
>>> C={1,123}
>>> C或<是判断包含关系的
3.集合类型处理方法
>>> s={123,'df'}
>>> s.add(12) #s.add(x):x不在s集合中,将x增加到s
>>> s
{123, 12, 'df'}
>>> s.discard(1) #s.discard(x):删除s集合中的x元素,若x不存在不报错
>>> s
{123, 12, 'df'}
>>> s.discard(12)
>>> s
{123, 'df'}
>>> s.remove(1) #s.remove(x):删除s集合中的x元素,若x不存在报错keyError
Traceback (most recent call last):
File "", line 1, in
s.remove(1)
KeyError: 1
>>> s.remove(123)
>>> s
{'df'}
>>> s.clear() #s.clear()清空s集合中的所有元素
>>> s
set()
>>> s={123,'df'}
>>> s.pop() #s.pop()随机返回一个元素,并在s中删除该元素,若s为空产生KeyError异常
123
ss=s.copy() #复制s集合
>>> ss
{123, 'df'}
>>> sss=s #和s.copy()函数同效
>>> sss
{123, 'df'}
>>> len(s) #s集合的元素个数
2
>>> 1 in s #判断元素是否在s中
False
>>> 123 in s
True
4.集合类型应用
1)包含关系比较
>>> s={123,'df',1,'a'}
>>> {'a'}<=s
True
2)数据去重:集合类型元素唯一的特点
>>> s=['p','py','p','y']
>>> s=set(s)
>>> s
{'y', 'py', 'p'}
>>> t=list(s) #将集合类型转为列表类型
>>> t
['y', 'py', 'p']