集合的定义
由不同元素组成的集合,集合中是一组无序排列的可hash值,集合中元素必须是不可变类型,可以作为字典的key。
定义集合的方式
第一种方式
s = {1,"hello",2,3,4}
第二种方式
s = set(['hello','world'])
集合的内置方法
定义两个列表:
python = ['lcg','swd','zjw','gfe']
linux = ['lcg','zjw']
常用操作:
列表转换成集合:
ps = set(python)
ls = set(linux)
列表转换成集合:
ps = set(python)
ls = set(linux)
ps.add('kji') # 更新一个值
ps.update(['wq','reg']) # 更新多个值,包括:元组、列表等可迭代类型
ps.clear() # 清空
ps.pop() # 随机删除元素
ps.remove() # 删除指定元素,如果元素不存在会报错
ps.discard() # 删除指定元素,元素不存在不会报错
print(ps.intersection(ls)) # 多个集合的交集,相当于"ps&ls"
print(ps.union(ls)) # 多个集合的并集,相当于"ps|ls"
print('差集',ps.difference(ls))) # 多个集合的并集,相当于"ps-ls"
print('差集',ls.difference(ps))) # 多个集合的并集,相当于"ls-ps"
补充操作:
print('交叉补集',ps.symmetric_difference(ls)) # 交叉补集,相当于"ps^ls"
ps.difference_update(ls) # ps-ls后赋值给ps,相当于ps=ps-ls
ps.isdisjoint(ls) # 如果没有交集,返回True;如果有交集,返回False
ls.issubset(ps) # ls是否ps的子集,返回True或False,相当于ps>=ls
ps.issuperset(ls) # ps是否ls的父集,返回True或False,相当于ps>=ls
s = frozenset('hello') # 定义不可变集合,无法添加、删除、更新
注:列表去重的方式
name = ['www','qws','wdsd','www']
name = list(set(name))