Python——合集,python合集
合集
主要功能是對比列表中的資訊,進行關係測試。
特點:
1. 去重,把一個列表變成合集,就自動去重了。
2. 關係測試,測試兩組資料之間的交集、差集、並集等關係。
3. 沒有插入功能,只能添加。
4. 一個無序的,不重複的資料群組合
5. 沒有插入功能,只能添加。
以{}的形式出現,類型為set
list_1 = [1,2,3,5,3,4,2,33,1] #建立列表list_1 = set(list_1) #關鍵字轉換成集合print(list_1,type(list_1)) #輸出集合,並直接進行去重。{1, 2, 3, 4, 5, 33} <class 'set'> #以大括弧的形式出現,資料類型為set
交集:
list_1 = set([1,2,3,5,3,4,2,33,1])list_2 = set([2,2,4,5,6,7,7,8])print(list_1.intersection(list_2)) #交集,就是將兩個集合中的重複項顯示出來。{2, 4, 5}
交集縮寫:
list_1 = set([1,2,3,5,3,4,2,33,1])list_2 = set([2,2,4,5,6,7,7,8])print(list_1 & list_2) #交集縮寫{2, 4, 5}
並集:
list_1 = set([1,2,3,5,3,4,2,33,1])list_2 = set([2,2,4,5,6,7,7,8])print(list_1.union(list_2)) #並集,就是將兩個列表中的重複選項去掉合并在一起。{1, 2, 3, 4, 5, 33, 6, 7, 8}
並集縮寫。
list_1 = set([1,2,3,5,3,4,2,33,1])list_2 = set([2,2,4,5,6,7,7,8])print(list_1 | list_2) #並集縮寫{1, 2, 3, 4, 5, 33, 6, 7, 8}
差集,就是1裡面有而2裡面沒有的資料。
list_1 = set([1,2,3,5,3,4,2,33,1])list_2 = set([2,2,4,5,6,7,7,8])print(list_1.difference(list_2)) #差集{1, 3, 33}
差集縮寫:
list_1 = set([1,2,3,5,3,4,2,33,1])list_2 = set([2,2,4,5,6,7,7,8])print(list_1 - list_2) #差集縮寫{1, 3, 33}
子集,就是判斷列表1中是不是包含列表3的全部資料。
list_1 = set([1,2,3,5,3,4,2,33,1])list_3 = set([1,2,3])print(list_3.issubset(list_1)) #子集True #返回false或True
父集,就是判斷列表3中全部內容是不是在列表1中都有。
list_1 = set([1,2,3,5,3,4,2,33,1])list_3 = set([1,2,3])print(list_1.issuperset(list_3)) #父集True #返回false或True
對稱差集,就是將兩個列表中都有的數字去掉,然後合并在一起。
list_1 = set([1,2,3,5,3,4,2,33,1])list_2 = set([1,2,3,88])print(list_1.symmetric_difference(list_2)) #對稱差集print(list_1 ^ list_2) #對稱差集縮寫{33, 4, 5, 88}
判斷交集,就是判斷兩個列表中是否有相同資訊。
list_1 = set([1,2,3,5,3,4,2,33,1])list_2 = set([1,2,3,88])print(list_1.isdisjoint(list_2))False #如果有交集就顯示False,如果沒有就顯示True
添加:
list_1 = set([1,2,3,5,3,4,2,33,1])list_1.add(999) #添加print(list_1)list_1.update([444,333,222]) #添加多項print(list_1){1, 2, 3, 4, 5, 33, 999}{1, 2, 3, 4, 5, 33, 999, 333, 444, 222}
刪除:
list_1 = set([1,2,3,5,3,4,2,333,1])list_1.remove(333) #刪除print(list_1)
隨機刪除一個:
list_1 = set([1,2,3,5,4,333])print(list_1.pop())1 #返回刪除的值
刪除,如果不在集合內將不報錯。
list_1 = set([1,2,3,5,4,333])list_1.discard(222) #集合內沒有也不會報錯。
顯示去重以後的長度:
list_1 = set([1,2,3,5,4,333])print(len(list_1))6
判斷數字是否在合集中。
list_1 = set([1,2,3,5,4,333])print(6 in list_1) False #如果沒有將顯示False,如果有將顯示True
盤算數字是否不在這個集合中。
list_1 = set([1,2,3,5,4,333])print(6 not in list_1)True #如果不在將顯示True,如果在將顯示False
複製:
list_1 = set([1,2,3,5,4,333])list_2 = list_1.copy() #複製到list_2中。print(list_2)print(type(list_2)){1, 2, 3, 4, 5, 333}<class 'set'>