python3 组合数据类型(一)集合类型及操作

1.集合类型

集合是大于等于0个元素无序组合,用{}表示,元素间用逗号隔开;用{}或set()函数建立集合,但空集合必须用set()函数。

特点:集合元素之间无序,每个元素唯一(不存在相同元素),元素不可更改不能是可变数据类型,而是字符串、整数型、浮点型、元组(因为可变数据类型元素是可以被更改的,一旦集合中的元素被更改就有可能和别的元素一样,导致集合出错)。

2.集合类型操作符

S|T  并:返回一个新的集合,包括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,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']

你可能感兴趣的:(python)