1. 定义:由 (不同元素) 组成的集合,其中是一组无序的可hash的值,可以作为字典的key
2. 特性:将不同的值放到一起,不同的集合间来做关系运算,集合中的元素必须是不可变类型,没有重复的元素
set方法: s = {1,3,6,'test',3,4,2,} print(s,type(s)) 结果:{1, 2, 3, 4, 6} <class 'set'> m = set('hello') -- 使用set,可在里面传入列表,将其遍历转换成集合 print(m) 结果:{'l', 'e', 'o', 'h'} s.add('3') add只能更新一个值 s.add(3) print(s) 结果:{1, 2, 3, 4, 6, '3'} s.clear() - 清空集合 s.copy() - 浅拷贝 s.pop() - 随机删除 s.remove('test') - 删除指定的值,若传入的值不存在会报错 s.discard('test') - 删除指定的值,若传入值不存在 也不会报错 s= {3,4} s.update((1,2)) 更新集合 print(s) 结果:{1, 2, 3, 4} 将集合设置成不可变类型: s = frozenset('hello') print(s) 结果:frozenset({'l', 'o', 'e', 'h'})
3. 集合的交 ,差,并集,交差补集,空集,子集,父集
求交集和并集: s1 = {1,3,6,4,2,} s2 = {1,5,7,6,2,8,} print(s1 & s2) print(s1 | s2) 结果: {1, 2, 6} {1, 2, 3, 4, 5, 6, 7, 8} 求差集: print(s1 - s2) print(s2 - s1) 结果: {3,4} {8,5,7} 求交差补集: print(s1 ^ s2) 结果:{3, 4, 5, 7, 8} 交集为空返回True: s3 = {1,2} s4 = {3,4} print(s3.isdisjoint(s4)) 结果:True 子集(s4是s3的子集,则返回True): s3 = {1,2,3,4} s4 = {3,4} print(s4.issubset(s3)) 结果:True 父集(s3是s4的父集,则返回True): s3 = {1,2,3,4} s4 = {3,4} print(s3.issuperset(s4)) 结果:True