#可变序列
#无序 无重复
#集合是没有value的字典
#创建
#1{}
s1={1,2,3,6,4,8,63,45,1}
#2 set函数
s2=set(range(6))
l1=[1,5,254,5,52,]
s3=set(l1)
t1={1,5,254.64,6,1}
s4=set(t1)
#空集合
s5=set()
s6=set('python')
print(s1)
print(s2)
print(s3)
print(s4)
print(s5)
print(s6)
#判断 in
print(10 in s1)
print(1 not in s2)
s={1,2,3,4,5,6,7,8,9,99}
#增加
#add一个
s.add(80)
print(s)
#update多个 集合 列表 元组
s.update({11,55,19})
s.update([11,55,2200])
s.update((1,5,26,7))
print(s)
#删除
#remove指定元素
s.remove(11)
print(s)
#discard指定元素 没有不异常
s.discard(11)
#pop 不能指定元素,()不能有参数
s.pop()
print(s)
s.pop()
print(s)
#clear 清除所有
s.clear()
print(s)
#集合的关系
#相等
e1={1,2,3,4,56}
e2={2,3,1,4,56}
print(e1==e2)
#子集
e3={1,2}
e4={8}
print(e3.issubset(e1)) #e3是e1的子集吗
#超集
print(e1.issuperset(e3))
#交集
print(e2.isdisjoint(e1)) #没有交集为True
#数学操作
#交集
j1={10,20,30,40}
j2={20,30,40,50}
print(j1.intersection(j2))#求交集
print(j1&j2)#求交集
#并集
print(j1.union(j2))
print(j1|j2)
#差集
print(j1.difference(j2))
print(j2.difference(j1))
print(j1-j2)
print(j2-j1)
#对称差集
print(j1.symmetric_difference(j2))
print(j1^j2)
#集合生成式
j3={i*i for i in range(1,10)} #无序
print(j3)
l1=[i*i for i in range(1,10)] #有序
print(l1)
'''
数据结构 是否可变 是否重复 是否有序 定义符号
列表(list) 可变 可重复 有序 []
元组(tuple) 不可变 可重复 有序 ()
字典(dict) 可变 key不可重复 无序 {ikey :value}
集合(set) 可变 不可重复 无序 {}
'''