python数据结构----集合


集合

概念

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)}

在这里插入图片描述

列表,字典,元组,集合总结

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Hedenghui777/article/details/118156294