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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM