python学习笔记(10)--组合数据类型(集合类型)
集合类型
集合是多个元素的无序组合,每个元素唯一,不存在相同类型,每个元素是不可变类型。用{}表示,元素间用逗号分隔。建立结合类型用{},或set函数,如果是空集合必须用set。
>>> a={'a','b'} >>> a {'a', 'b'} >>> b=set("pypy123") >>> b {'p', '2', 'y', '1', '3'}
集合操作符:
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 -=T
S &= T
S ^=T
集合处理方法:
S.add(x) 如果x不在S中,将x增加到S
S.discard(x) 移除S中元素x,如果x不在集合中,不报错
S.remove(x) 移除S中元素x,如果x不在集合中,产生KeyError异常
S.clear() 移除S中所有元素
S.pop() 随机返回S的一个元素,更新S,若S为空产生KeyError异常
S.copy() 返回S的一个副本
len(S) 返回集合的元素个数
x in S 在,返回True
x not in S 不在返回True
set(x) 将x变量转换为集合类型
>>> b {'2', 'y', '1', '3'} >>> try: while True: print(b.pop(),end="") except: pass 2y13 >>> b set()
集合类型应用场景:
包含关系比较:‘p’ in {'p','y',123} {‘p’, 'y'} >= {'p','y',123}
数据去重:将有重复元素的列表类型转换为没有重复元素的集合类型,如果需要使用列表类型,再将集合类型转换为列表类型
>>> ls=['p', 'y', 'y', 'p', 123] >>> ls ['p', 'y', 'y', 'p', 123] >>> s=set(ls) >>> s {'y', 123, 'p'} >>> It=list(s) >>> It ['y', 123, 'p']