用途:多用於去重,關係運算python
定義方式:經過大括號存儲,集合中的每一個元素經過逗號分隔。集合內存儲的元素必須是不可變的,所以,列表-List 和字典dict 不能存儲在集合中code
注意:定義空集合時,必須使用set定義。orm
# 定義空集合 s1 = set() print(type(s1)) # 非空集合定義 s2 = {1,2,'a',2,'b'} # s2 = set({1,2,'a','b'}) print("s2:{}".format(s2)) # 使用list 或tuple 或dict 做爲輸入集合,重複元素在set 中會自動被過濾 s3 = set([1,2,3,2,4]) print(type(s3)) print(s3) # 輸出:{1,2,3,4} s4 = set((1,2,3,1,2)) print(s4) # 輸出:{1,2,3} s5 = set({1:"alex",2:"egon",3:"sean"}) print(s5) # 輸出:{1,2,3}
特性:無序、可變、去重且可存儲多個值的數據類型內存
數學運算rem
合集:數學上的並集,兩個集合相加,去重後的元素。用 |
表示字符串
a = {1,2,3,4} b = {3,4,5,6} print(a | b) # 打印結果:{1,2,3,4,5,6}
交集:兩個集合都存在且去重後的元素。用 &
表示數學
a = {1,2,3,4} b = {3,4,5,6} print(a & b) # 打印結果:{3,4}
差集:集合a 和集合b ,集合a 減去 集合b 的元素。用 -
表示form
a = {1,2,3,4} b = {3,4,5,6} print(a - b) # 打印結果:{1,2} print(b - a) # 打印結果:{5,6}
對稱差集:減去同時存在於兩個集合的元素,餘下的元素就是對稱差集。用 ^
表示class
a = {1,2,3,4} b = {3,4,5,6} print(a ^ b) # 打印結果:{1,2,5,6}
集合的增刪改查擴展
add
語法:set.add()
給集合添加元素,若是添加的元素在集合中已存在,則不執行任何操做
s1 = set([1,2,3,4,5,4,3]) s1.add('6') s1.add(3) # 能夠添加已存在的元素,可是不會有任何效果 print(s1) # 打印結果:{1,2,3,4,5,'6'}
注意:add 方法不能夠添加列表或字典,因列表和字典是可變的數據類型
update
語法:set.update()
能夠將列表,元組,字符串,字典中的元素打散增長到集合中
s1 = {1,2,3} l1 = ['a','b','c'] s1.update(l1) print(s1) # 打印結果:{1,2,3,'a','b','c'} s2 = {1,2,3} t1 = ('1','2',3,4) s2.update(t1) print(s2) # 打印結果:{1,2,3,'1','2',4} s3 = {1,2,3} str1 = "dawn" s3.update(str1) print(s1) # 打印結果:{1,2,3,'d','a','w','n'} s4 = {1,2,3} d1 = {"name":"sean","age":18,"hobby":["read","study"]} s4.update(d1) print(s1) # 打印結果:{1,2,3,'name','age','hobby'} 取字典的key 做爲元素
difference_update
語法:set.difference_update(set1)
移除兩個集合中都存在的元素並將值返回給set,set1不會改變
s1 = {'a','e',1,2} s2 = {'e',1,2,3} s1.difference_update(s2) print(s1) # 打印結果:{'a'} print(s2) # 打印結果:{1,2,3,'e'}
remove
語法:set.remove()
移除集合中的元素,若是集合中沒有這個元素則會報錯
s1 = {1,2,'e','4'} s1.remove(2) print(s1) # 打印結果:{1,'e','4'}
s1 = {1,2,'e','4'} s1.remove(4) # 報錯,集合中沒有這個元素 print(s1)
discard
語法:set.discard()
和remove 同樣都是移除集合中的元素,但若是結合中沒有這個元素不會報錯,這就是跟remove 的區別
s1 = {1,2,'e','4'} s1.discard('2') # 不報錯 print(s1) # 打印結果:{1,2,'e','4'}
s1 = {1,2,'e','4'} s1.discard(2) print(s1) # 打印結果:{1,'e','4'}