#集合是无序的,不重复的
s = {1,2,3,4,5,6}
print(s)
#set生成集合
s = set('hello')
print(s)
s = set(['alex','alex','sb'])
print(s)
#add添加
s = {1,2,3,4,5,6}
s.add('s')
s.add('3')
s.add(3)
print(s)
#clear清空
s.clear()
print(s)
#拷贝copy
s1 = s.copy()
print(s1)
#随机删除pop
s.pop()
print(s)
#制定删除
s.remove('sb')
print(s)
#删除集合中不存在的不会报错
s.discard('sdddd')
print(s)
python_l = ['lcg','szw','zjw','lcg']
linux_l = ['lcg','szw']
p_s = set(python_l)
l_s = set(linux_l)
#求交集
print(p_s,l_s)
print(p_s.intersection(l_s))
print(p_s&l_s)
#求并集
print(p_s.union(l_s))
print(p_s|l_s)
#求差集,只存在于左边的,不存在于右边的
print(p_s-l_s)
print(p_s.difference(l_s))
#交叉补集
print(p_s.symmetric_difference(l_s))
print(p_s^l_s)
#求完差集赋值给左边的
p_s = p_s-l_s
p_s.difference_update(l_s)
print(p_s)
#求交集没有共有的部分返回True,有共有的部分返回False
s1 = {1,2}
s2 = {3,5}
print(s1.isdisjoint(s2))
#包含关系
s1={1,2}
s2={1,2,3}
print(s1.issubset(s2)) #s1 是 s2的子集
print(s2.issubset(s1)) #False
print(s2.issuperset(s1)) #s1 是s2的父集
s1 = {1,2}
s2 = {1,2,3}
s1.update(s2) #更新多个值可以传元组和列表
s1.update((1,2,3,4))
print(s1)
s1.add(1,2,3,4) #只能更新一个值
#不可变集合,add等方法不可用
s = frozenset('hello')
print(s)