#集合,是可变类型的序列,没有vlaue的字典
#创建集合
s={'python','nihoa',43,'python'} #第一种创建方法
print(s)
#第二种创建方式set(),range()是随机函数
s1=set(range(6))
print(s1,type(s1))
s2=set([10,10,12,145,45,4]) #将列表中的元素转化为集合
print(s2,type(s2))
s3=set((500,10,2,15,4,55,7))#将元组中的元素转化为集合,集合中的元素是无序的
print(s3,type(s3))
s4=set('python')
print(s4,type(s4))
s5=set({1,24,4,54,48,4})
print(s5,type(s5))
#定义一个空集合
s6=set()
print(s6,type(s6))
#集合可以增删改查
#判断集合元素在不在
s=set((10,20,112,15542,42,1,24,23,4,2))
print(10 in s) #10在集合里面吗
print(10 not in s)#10不在集合里面吗
print(100 in s)
#集合的添加元素
s.add(333) #集合的添加元素的内置函数,一次添加一个,updata一次添加至少一个元素
print(s)
s.update({20,10,3330})#更新集合,把多个元素添加到集合中
print(s)
s.update([111,20,30])#更新集合,把列表的元素更新到集合中
print(s)
#集合的删除元素
s.remove(1) #remove如果要删除的元素不存在,就会抛异常
print(s)
s.discard(100)#discard如果元素不存在,不会抛异常
print(s)
s.pop()#pop方法一次任意删除一个元素
print(s)
s.pop()#pop方法一次任意删除一个元素
print(s)
s.clear()#清空集合里的所有元素
print(s)
#集合的关系
s3={10,20,30,40,50}
s33={10,20,30,40}
s333={10,20,40}
print(s3==s33) #集合是否相等
print(s3!=s33)
#集合的子集关系
print(s333.issubset(s3)) #s333是s3的子集吗
print(s33.issubset(s3))
#集合的超集
print(s3.issuperset(s33))#s3是s333的超集吗
#集合的交集
print(s3.isdisjoint(s333))#s3和s333是否有交集,有的时候为false,没有交集的时候是true
#集合的数学操作
#集合的交集,求共有的元素
s6={10,20,30,40,50,60,'python'}
s7={10,20,30,80,90}
print(s7.intersection(s6))#输出s7和s6交集的元素
print(s7 & s6) #输出s7和s6交集的元素,与数学中类似
#集合并集操作
print(s7.union(s6))#s7,s6的并集元素的输出
print(s7 | s6)
#集合的差集
print(s7.difference(s6))#s7与s6的差集,s7里面有的但是s6里面没有的元素
print(s6.difference(s7))#s7与s6的差集,s6里面有的但是s7里面没有的元素
print(s6-s7)
#集合的对称差集
print(s6.symmetric_difference(s7)) #在s7和s6中去除都有的部分之后其他都有的元素输出
print(s6^s7)
#集合的生成式
lst=[ i*i for i in range(10)]#列表生成式
print(lst)
print(type(lst))
lst1={ i*i for i in range(10)}#集合生成式,集合是无序的
print(lst1,type(lst1))
自学python第九章-集合
最新推荐文章于 2024-09-07 20:08:36 发布