集合能夠理解成一個集合體,學習python的學生能夠當作一個集合體,學習linux的學生也能夠當作一個集合體。linux
用途:==去重,亂序==。用於關係運算的集合體,因爲集合體內的元素無序且集合元素不可重複,所以集合能夠去重,可是集合是無序的,去重以後會打亂原來元素的順序。學習
定義:{}內用逗號分隔開多個元素,每一個元素必須是不可變的類型。code
定義空集合blog
s = {} # 空大括號是字典,不是集合,定義空集合必須得用set()
長度lenrem
s = {1,2,'a'} print(len(s)) #輸出: 3
成員運算in or not init
s = {1,2,'a'} print(1 in s) print(2 not in s) #輸出: True False
|並集 unionio
s1 = {1,2,'a'} s2 = {1,2,3,4,'b'} print(s1|s2) print(s1.union(s2)) #輸出: {1, 2, 3, 4, 'b', 'a'} {1, 2, 3, 4, 'b', 'a'}
&交集 intersectionclass
s1 = {1,2,'a'} s2 = {1,2,3,4,'b'} print(s1&s2) print(s1.intersection(s2)) #輸出: {1, 2} {1, 2}
-差集 differencedate
s1 = {1, 2, 'a'} s2 = {1, 2, 3, 4, 'b'} print(s1 - s2) print(s1.difference(s2)) print(s2 - s1) print(s2.difference(s1)) #輸出: {'a'} {'a'} {3, 4, 'b'} {3, 4, 'b'}
^對稱差集 symmetric_difference
##取出除共有的外 s1 = {1, 2, 'a'} s2 = {1, 2, 3, 4, 'b'} print(s1^s2) print(s1.symmetric_difference(s2)) #輸出: {'b', 3, 4, 'a'} {'b', 3, 4, 'a'}
==
#比較 s1 = {1, 2, 'a'} s2 = {1, 2, 3, 4, 'b'} print(s1 == s2) #輸出: False
父集: > >= issuperset
s1 = {1, 2, 'a'} s2 = {1, 2, 'a'} s3 = {1, 2} print(s1 >= s2) print(s1.issuperset(s2)) print(s1 > s3) print(s1.issuperset(s3)) print(s1 >= s3) print(s1.issuperset(s3)) print(s3.issuperset(s1)) #輸出: True True True True True True False
子集:< <= issubset
s1 = {1, 2, 'a'} s2 = {1, 2, 'a'} s3 = {1, 2} print(s1 <= s2) print(s1.issubset(s2)) print(s3 < s1) print(s3.issubset(s1)) print(s3 <= s1) print(s3.issubset(s1)) #輸出: True True True True True True
add()添加
s1 = {1, 2, 'a'} s1.add(5) print(s1) #輸出: {1, 2, 5, 'a'}
remove()移除,沒有報錯
s1 = {1, 2, 'a'} s1.remove(2) print(s1) #輸出: {1, 'a'}
difference_update()
# 取出和另一個集合不一樣的元素 s1 = {1, 2, 'a'} s2={1,2,4,5,'b','c'} s2.difference_update(s1) print(s2) #輸出: {4, 5, 'c', 'b'}
discard()刪除(拋棄),沒有不報錯
s1 = {1, 2, 'a'} # s1.remove(3)# 報錯 s1.discard(3) print(s1) #輸出: {1, 2, 'a'}
isdisjoint
# 集合沒有共同的部分返回True,不然返回False s1 = {1, 2, 'a'} s2 = {1,2,3,4,5,'b'} s3 = {6,7,8} print(s2.isdisjoint(s1)) print(s2.isdisjoint(s3)) #輸出: False True
clear
copy
remove
pop(隨機刪除)
discard()拋棄
存在一個或者多個值:多個值,不可改變
有序或者無序:無序
可變或者不可變:可變數據類型