python3.x Day3 集合

python中的集合python

集合定義:一個無序的去重的數據集,主要特性就是去重和關係測試,關係測試不改變集合中的數據值測試

定義集合:set(list) 能夠將list轉化爲集合setspa

示例:code

定義一個集合:list_1orm

list_1=[1,3,23,53,3]

定義另外一個集合:list_2對象

list_2=[2,3,53,2]

轉化爲集合:blog

能夠用list_1自身轉化,也能夠賦值給其餘變量,這裏就用自身rem

list_1 = set(list_1)
list_2 = set(list_2)

輸出一下轉化後的值,能夠看到已經去重了(去重特性):it

print(list_1,type(list_1))
print(list_2,type(list_2))
#結果:
>>> print(list_1,type(list_1))
{1, 3, 53, 23} <class 'set'>

>>> print(list_2,type(list_2))
{2, 3, 53} <class 'set'>

接下來是關係測試:io

交集(list_一、list_2都有的數據):能夠用set的intersection方法(如下代碼)或者運算符 print(list_1 & list_2)

#交集
print(list_1.intersection(list_2))
>>>{3, 53}

判斷 沒有交集(沒有:True、有:False):

#判斷 沒有交集
print("判斷 沒有交集,沒有返回True")
print(list_1.isdisjoint(list_2)) #有交集,返回false
list_4=set([101,102]) #定義list_4與list_1沒有交集
print("list_4:",list_4)
print(list_1.isdisjoint(list_4))

>>>判斷 沒有交集,沒有返回True
>>>False
>>>list_4: {101, 102}
>>>True

 

並集(list_一、list_2中的數據整合在一塊兒):能夠用set的union方法,也能夠使用運算符print( list_1 | list_2 )

 #並集
print(list_1.union(list_2))
>>>{1, 2, 3, 53, 23}

差集(取數據爲:首先在list_1中,list_2中的數據,若是list_1中有,結果集就去掉):能夠用set的difference方法,也能夠使用運算符print( list_1 - list_2 ) 表示:list_1中包含,list_2不包含

#差集
print(list_1.difference(list_2))
>>>{1, 23}
#反過來也是同樣的原理,結果以list_2爲準
print(list_2.difference(list_1))
>>>{2}

對稱差集(取得兩個集合互相都沒有的數據):能夠使用set對象的symmetric_difference方法,也能夠使用運算符 print( list_1 ^ list_2)

#對稱差集:取得兩個集合中,互相都沒有的數據
print("對稱差集")
#list_一、list_2
print(list_1,list_2)
#取得對稱差集
print(list_1.symmetric_difference(list_2))

>>>{1, 3, 53, 23} {2, 3, 53}
>>>{1, 2, 23}
 

 

子集/父集:

#子集/父集 返回值爲True、False
print("子集/父集")
print(list_1.issubset(list_2)) #list_1是否是list_2的子集
print(list_1.issuperset(list_2)) #list_1是否是list_2的父集
>>>False
>>>False

list_3=set([3,53])
print(list_3.issubset(list_1))#list_3是否是list_1的子集
print(list_1.issuperset(list_3))#list_1是否是list_3的父集
>>>True
>>>True

 

集合的增傷改查:

#集合的增刪改查
print("增長,add方法增長一個,update方法增長多個")
list_1.add(55555)
list_1.update([333,444,666])
print("查詢,len()方法查詢有多少成員,x in set判斷x是否爲成員")
print(list_1)
print(len(list_1))
print(666 in list_1,999 in list_1)
print("刪除,set的pop方法隨機刪除一個,返回被刪除的值。"
      "remove刪除指定一個成員,有就刪除,沒有就異常,"
      "discard方法刪除指定值,不返回,有就刪除,沒有就啥都不作")
print("it is {list}".format(list=list_1))
print(list_1.pop())
print("pop():",list_1)
#remove
list_1.remove(333)
#list_1.remove("ddd") ddd不存在,此處會異常
print("remove()",list_1)
#discard
list_1.discard(444)
list_1.discard("ddd")
print(list_1)
相關文章
相關標籤/搜索