# 集合是由 { ,} 组成 test = {1,2,8,9,7,5} print(test) {1, 2, 5, 7, 8, 9}
# 集合的结果是 去重的,且排序是 无序的 test = {1,2,3,3,5,8,5,9,7,6} print(test) {1, 2, 3, 5, 6, 7, 8, 9}
s = set('hello') print(s) {'l', 'o', 'h', 'e'}
# add()添加 test = {1,2,3,8,5,9,7,6} test.add(16) print(test) {1, 2, 3, 5, 6, 7, 8, 9, 16}
# .clear()清空 test = {1,2,3,8,5,9,7,6} test.clear() print(test) set()
# .copy() 复制 test = {1,2,3,8,5,9,7,6} s =test.copy() print(s) {1, 2, 3, 5, 6, 7, 8, 9}
# .pop() 随机删除 test = {'abc',10,2,3,8,5,9,7,6} test.pop() print(test) {3, 5, 6, 7, 8, 9, 10, 'abc'}
# .remove() 指定删除(如果删除元素不存在会报错) test = {'abc',10,2,3,8,5,9,7,6} test.remove(10) print(test) {2, 3, 5, 6, 7, 8, 9, 'abc'}
## .discard() 指定删除 (如果元素不存在,不会报错) test = {'abc',10,2,3,8,5,9,7,6} test.discard(888) print(test) {2, 3, 5, 6, 7, 8, 9, 10, 'abc'}
# 求交集 intersection() 或者 & testname = ['小马','小张','小李','小王'] lastname = ['小唐','小马','小付'] t_e = set(testname) l_e = set(lastname) print(t_e,l_e) print(t_e.intersection(l_e)) print(t_e&l_e) {'小张', '小马', '小王', '小李'} {'小唐', '小马', '小付'} {'小马'} {'小马'}
# 求并集 union() 或者 | testname = ['小马','小张','小李','小王'] lastname = ['小唐','小马','小付'] t_e = set(testname) l_e = set(lastname) print(t_e,l_e) print(t_e.union(l_e)) print(t_e|l_e) {'小马', '小李', '小王', '小张'} {'小马', '小唐', '小付'} {'小马', '小王', '小付', '小张', '小李', '小唐'} {'小马', '小王', '小付', '小张', '小李', '小唐'}
# 求差集 difference() 或者 - testname = ['小唐','小王','小马','小付'] lastname = ['小唐','小马','小付'] t_e = set(testname) l_e = set(lastname) print(t_e,l_e) print(t_e.difference(l_e)) print(t_e-l_e) {'小马', '小唐', '小王', '小付'} {'小马', '小唐', '小付'} {'小王'} {'小王'}
print(l_e-t_e) set()
# 求交补差集 symmetric_difference() 或者 ^ testname = ['小李','小王','小马','小付'] lastname = ['小唐','小马','小付'] t_e = set(testname) l_e = set(lastname) print(t_e,l_e) print(t_e.symmetric_difference(l_e)) print(t_e^l_e) {'小马', '小王', '小李', '小付'} {'小马', '小付', '小唐'} {'小唐', '小王', '小李'} {'小唐', '小王', '小李'}
# 差集更新 .difference_update() testname = ['小唐','小王','小马','小付'] lastname = ['小唐','小马','小付'] t_e = set(testname) l_e = set(lastname) print(t_e,l_e)
t_e = t_e-l_e # 原始方法 print(t_e) t_e.difference_update(l_e) # 函数方法 print(t_e) {'小付', '小王', '小唐', '小马'} {'小付', '小唐', '小马'} {'小王'} {'小王'}
# .isdisjoint() 判断公有,有未False,没有为True a = {1,2,3,8} b = {2,4,6,9} print(a.isdisjoint(b)) False a = {1,2,3,8} b = {0,4,6,9} print(a.isdisjoint(b)) True
# .issubset() 判断是否是子集 s1 = {1,2} s2 = {1,2,3,4} print(s1.issubset(s2)) #s1是s2的子集 print(s2.isdisjoint(s1)) # False True False # .issuperset() 判断是否是父集 s1 = {1,2} s2 = {1,2,3,4} print(s2.issuperset(s1)) #s2是s1的父集 True
# .update() 更新 (可以更新多个值,列表、元祖都行) add只能更新一个值 s1 = {1,2} s2 = {1,2,3,4} s1.update(s2) print(s1) print(s1,s2) {1, 2, 3, 4} {1, 2, 3, 4} {1, 2, 3, 4}
s1 = {1,2} s2 = {1,2,3,4} s1.update((6,8)) print(s1) print(s1,s2) {8, 1, 2, 6} {8, 1, 2, 6} {1, 2, 3, 4}
# frozenset() 改变成不可变集合 s = frozenset('hello') print(s) frozenset({'l', 'e', 'o', 'h'})
# # 集合后的列表 test =['majun','xiaoma','xiaoma'] name = list(set(test)) print(name) ['majun', 'xiaoma']
# 集合变列表 无序 test = {'majun','xiaoma','zhangfei'} name = list(test) print(name) ['zhangfei', 'xiaoma', 'majun'] # 列表变集合 无序 test =['majun','xiaoma','zhangfei'] name = set(test) print(name) {'zhangfei', 'xiaoma', 'majun'}