集合
概念
python语言提供的内置数据结构
可变序列
集合没有value的字典
创建
s={
'python',123,2}
print(s)
s=set(range(6))
print(s)
print(set([3,4,53,56]))
print(set((3,4,43,435)))
print(set('python'))
print(set({
123,4,4,6}))
s={
}
s1=set()
print(s,type(s))
print(s1,type(s1))
添加删除
1.添加
- add()
一次添加一个元素 - update()
一次至少添加一个元素
#添加
s.add(80)#添加单个元素
print(s)
s.update({
1000,2000,3000})#至少添加一个元素
s.update([4000,5000,6000])
s.update((7000,8000,9000))
print(s)
2.删除
- remove()
一次删除一个指定元素,如果制定元素不存在抛出KeyError - discard()
一次删除一个指定元素,如果指定的元素不存在不抛异常 - pop()
一次只删除一个任意元素 - clear()
清空集合
s.remove(100)
print(s)
#s.remove(10000) 不存在抛出KeyError
s.discard(4000)
print(s)
s.discard(10000)#不存在的时候不抛出异常
s.pop()#删除任意一个元素
print(s)
s.clear()
print(s)
集合关系
- 一个集合是否是另一个集合的子集,调用方法issubset进行判断
- 一个集合是否是另一个集合的超集,调用方法issuperset进行判断
- 两个集合是否没有交集,调用方法isdisjoint进行判断
s1={
1,2,3,4}
s2={
1,2,3}
s3={
1,2,7}
#判断是否是子集
print(s2.issubset(s1))#true
print(s3.issubset(s1))#false
#判断是否是超集
print(s1.issuperset(s2))#true
print(s1.issuperset(s3))#false
#判断两个集合是否没有交集
s4={
1000,2000}
print(s1.isdisjoint(s2))#false
print(s1.isdisjoint(s4))#true
集合间的数学操作
#交集
s1={
10,20,30,40}
s2={
20,30,40,50}
print(s1.intersection(s2))
print(s1&s2)
#并集
print(s1.union(s2))
print(s1|s2)
#差集
print(s1.difference(s2))
#对称差集
print(s1.symmetric_difference(s2))
集合生成式
s={
i*i for i in range(6)}