Python之基本数据类型——集合数据类型

集合set(可变的数据类型):

   数据结构以大括号{}表示,各元素逗号隔开,例:{1,2,3,4}。

   集合特征:无序,元素不重复

创建集合:

s={1,2,3}
pirnt(s)
#---------------
{1,2,3}

s=set('hello')
print(s)
#---------------
{'e', 'h', 'o', 'l'}
  • set.add()

   添加元素:

 

s=('abc')
s.add('d')
print(s)
#---------------
{'c', 'd', 'a', 'b'}

 

  • set.clear()

   清空集合元素:

s=set('abc')
s.clear()
print(s)
#------------------
{}
  • set.copy()

   集合的拷贝(浅拷贝):

s=set('abc')
s2=s.copy()
print(s2)
#-------------------
{{'c', 'a', 'b'}}
  • set.pop()

   随机删除某一集合元素,并返回被删的元素值:

s=set('abc')
s.pop()
print(s)
#----------------------
{'a', 'b'}
  • set.remove()

   删除指定的元素(元素不存在会报错):

s=set('abc')
s.remove('b')
print(s)
#--------------------
{'c', 'a'}
  • set.discard()

   删除指定元素(元素不存在不报错):

s=set('abc')
s.discard('b')
print(s)
#--------------------
{'c', 'a'}
  • 求交集(两集合中共有的元素):
s1=set('abc')
s2=set('abdef')
print(s1&s2)#使用&求交集
print(s1.intersection(s2))#使用集合的内置方法求交集
#------------------------------------
{'a', 'b'}
{'a', 'b'}
  • 求并集(两集合所有元素):
s1=set('abc')
s2=set('abdef')
print(s1|s2)#使用|求交集
print(s1.union(s2))#使用集合的内置方法求交集
#------------------------------------
{'c', 'b', 'd', 'a', 'e', 'f'}
{'c', 'b', 'd', 'a', 'e', 'f'}
  • 求差集(从一集合中减去另一集合存在的元素):
s1=set('abc')
s2=set('abdef')
print(s1-s2)#使用-求交集
print(s1.difference(s2))#使用集合的内置方法求交集
#------------------------------------
{'c'}
{'c'}
  • 求交叉补集(并集减交集):
s1=set('abc')
s2=set('abdef')
print(s1^s2)#使用^求交集
print(s1.symmetric_difference(s2))#使用集合的内置方法求交集
#------------------------------------
{'d', 'c', 'e', 'f'}
{'d', 'c', 'e', 'f'}
  • set.difference_update:

   求差集并将结果更新到原集合中:

s1=set('abc')
s2=set('abdef')
s2.difference(s1)#使用集合的内置方法求交集
print(s2)
#------------------------------------
{'f', 'e', 'd'}
  • set.isdisjoint():

   判断集合是否不相交:

s1=set('abc')
s2=set('c')
s3=set('abdef')
print(s1.isdisjoint(s3))
print(s2.isdisjoint(s3))
#-------------------------------
False
True
  • set.issubset():

   判断该集合是否是另一集合的子集:

s1=set('abc')
s2=set('abd')
s3=set('abdef')
print(s1.issubset(s3))
print(s2.issubset(s3))
#-----------------------------------
False
True
  • set.issuperset():

   判断该集合是否另一集合的父集:

s1=set('abc')
s2=set('abd')
s3=set('abdef')
print(s3.issuperset(s1))
print(s3.issuperset(s2))
#-----------------------------------
False
True
  • set.update():

   将可迭代数据更新至集合中:

s1=set('abc')
s2=set('def')
s1.update(s2)  #对比set.add(),add()只可添加一个元素,update()可添加多个元素
print(s1)
#----------------------------
{'f', 'c', 'd', 'e', 'b', 'a'}
  • s=frozenset():

   可生成不可变集合:

s1=frozenset('abc')
print(s1)
#-----------------------------
frozenset({'b', 'c', 'a'})

 

posted @ 2018-09-05 10:21  恋853雨  阅读(1847)  评论(0编辑  收藏  举报