文章目录
- 集合
- 集合的创建
- 集合的相关操作(新增删除)
- 集合间关系(判断子集,母集,交集)
- 集合的数学操作(交集、并集,差集,对称差集)
- 集合生成式
集合
集合的创建
#一种创建方式使用()
s={5,2,3,4,2,3,4,6,3}
print(s)#{2, 3, 4, 5, 6}元素不重复,递增
"""第二种创建方式使用set()"""
s1=set(range(6))
print(s1,type(s1))#{0, 1, 2, 3, 4, 5}
s2=set([1,2,3,4,2,2,2,7,6])
print(s2,type(s2))#{1, 2, 3, 4, 6, 7}
s3=set((1,2,4,4,5,65))#集合中的元素是无序的
print(s3,type(s3))#{65, 1, 2, 4, 5}
s4=set('python')
print(s4,type(s4))#{'t', 'o', 'n', 'h', 'y', 'p'}
s5=set({12,4,34,55,66,44,4})
print(s5,type(s5))
#定义一个空集合
s6={}#dict字典类型
print(type(s6))#
s7=set()#空集合
print(type(s7))#
集合的相关操作(新增删除)
#集合的相关操作
s={10,20,30,40,33}
print(10 in s) #True
print(100 in s) #False
print(10 not in s) #False
print(100 not in s)#True
#集合元素的新增操作
s.add(80)#add一次添加一个元素
print(s)#{33, 40, 10, 80, 20, 30}
s.update({200,400,300})#update至少添加一个元素
print(s)#{33, 40, 200, 10, 300, 80, 400, 20, 30}
s.update([100,99,8])
s.update([78,64,56])#{64, 33, 99, 100, 40, 200, 10, 8, 300, 78, 80, 400, 20, 56, 30}
print(s)
"""集合元素的删除操作"""
s.remove(100)
print(s)
#s.remove(500)#报错
s.discard(500)
print(s)
s.pop()#随机甩出一名幸运观众
print(s)
s.pop()#随机甩出一名幸运观众
print(s)
s.pop()#随机甩出一名幸运观众
print(s)
s.clear()
print(s)
集合间关系(判断子集,母集,交集)
"""集合间的关系"""
s={10,20,30,40}
s2={30,40,20,10}
print(s==s2)#True
print(s!=s2)#False
"""一个集合是否是另一个集合的子集"""
s1={10,20,30,40,50,60}
s2={10,20,30,40}
s3={1,2,30}
print(s2.issubset(s1))#s2是s1的子集
print(s3.issubset(s1))#s3是s1的子集
"""一个集合是否另一个集合的母集"""
print(s1.issuperset(s2))#True
print(s1.issuperset(s3))#False
"""两个集合是否没有交集!!!没有交集"""
print(s2.isdisjoint(s3))#False
s4={100,200,300}
print(s2.isdisjoint(s4))#True
集合的数学操作(交集、并集,差集,对称差集)
#1.交集
s1={10,20,30,40}
s2={20,30,40,50,60}
print(s1)
print(s2)
print(s1.intersection(s2))#{40, 20, 30}
print(s1&s2)#{40, 20, 30}交集操作两者等价
#2.并集操作
print(s1.union(s2))#{40, 10, 50, 20, 60, 30}
print(s1|s2)#{40, 10, 50, 20, 60, 30}
#3.差集操作
print(s1.difference(s2))#{10}
print(s1-s2)#{10}
#4.对称差集两个都没有的
print(s1.symmetric_difference(s2))#{50, 10, 60}
print(s1^s2)#{50, 10, 60}
集合生成式
s={i*i for i in range(12)}#无序
print(s)