集合類型及操作
一:集合類型的定義
集合是多個元素的無序組合,與數學中的集合概念一致。
1、特點:
① 集合元素之間無序,每個元素唯一,不存在相同元素。
② 集合元素不可更改,不能是可變數據類型。
2、規則:
① 集合用大括號 {} 表示,元素間用逗號分隔。
② 建立集合類型用 {} 或 set()。
③ 建立空集合類型,必須使用set()。
A = {"重啓重裝版本升級大法好", 123, "python"} #使用{}建立集合
print(A)
#運行結果:{'重啓重裝版本升級大法好', 123, 'python'}
B = set("重啓重裝版本升級大法好") #使用set()建立集合
print(B)
#運行結果:{'版', '級', '升', '本', '重', '大', '好', '裝', '啓', '法'}
C = {"重啓重裝版本升級大法好", 123, "python", 123, "python"} #集合元素唯一不重複
print(C)
#運行結果:{123, '重啓重裝版本升級大法好', 'python'}
3、集合間操作及操作符
①、交:S & T 返回一個新集合,包括同時在集合S和T中的元素
S = {"重啓重裝版本升級大法好", 123, "python"}
T = {"重啓重裝版本升級大法好", 123, "python","天不生紅薔",4321}
print(S & T)
#運行結果:{123, 'python', '重啓重裝版本升級大法好'}
②、並:S | T 返回一個新集合,包括在集合S和T中的所有元素
S = {"重啓重裝版本升級大法好", 123, "python"}
T = {"重啓重裝版本升級大法好", 123, "python","天不生紅薔",4321}
print(S | T)
#運行結果:{4321, '天不生紅薔', 123, 'python', '重啓重裝版本升級大法好'}
③、補:S ^ T 返回一個新集合,包括集合S和T中的非相同元素
S = {"重啓重裝版本升級大法好", 123, "python"}
T = {"重啓重裝版本升級大法好", 123, "python","天不生紅薔",4321}
print(S ^ T )
#運行結果:{4321, '天不生紅薔'}
④、差:T - S 返回一個新集合,包括在集合T但不在S中的元素
S = {"重啓重裝版本升級大法好", 123, "python"}
T = {"重啓重裝版本升級大法好", 123, "python","天不生紅薔",4321}
print( T - S )
#運行結果:{4321, '天不生紅薔'}
⑤、S <= T 或 S < T 返回True/False,判斷S和T的子集關係
S = {"重啓重裝版本升級大法好", 123, "python"}
T = {"重啓重裝版本升級大法好", 123, "python","天不生紅薔",4321}
print(S <= T)
#運行結果1:True
#運行結果2:True
⑥、S >= T 或 S > T 返回True/False,判斷S和T的包含關係
S = {"重啓重裝版本升級大法好", 123, "python"}
T = {"重啓重裝版本升級大法好", 123, "python","天不生紅薔",4321}
print(S >= T)
print(S > T)
#運行結果1:False
#運行結果2:False
⑦、S |= T 並,更新集合S,包括在集合S和T中的所有元素
S = {"重啓重裝版本升級大法好", 123, "python"}
T = {"重啓重裝版本升級大法好", 123, "python","天不生紅薔",4321}
S|=T
print(S)
#運行結果:{4321, '天不生紅薔', 'python', 123, '重啓重裝版本升級大法好'}
⑧、S -= T 差,更新集合S,包括在集合S但不在T中的元素
T = {"重啓重裝版本升級大法好", 123, "python"}
S = {"重啓重裝版本升級大法好", 123, "python","天不生紅薔",4321}
S -= T
print(S)
#運行結果:{4321, '天不生紅薔'}
⑨、S &= T 交,更新集合S,包括同時在集合S和T中的元素
T = {"重啓重裝版本升級大法好", 123, "python"}
S = {"重啓重裝版本升級大法好", 123, "python","天不生紅薔",4321}
S &= T
print(S)
#運行結果:{'python', 123, '重啓重裝版本升級大法好'}
⑩、S ^= T 補,更新集合S,包括集合S和T中的非相同元素
T = {"重啓重裝版本升級大法好", 123, "python"}
S = {"重啓重裝版本升級大法好", 123, "python","天不生紅薔",4321}
S ^= T
print(S)
#運行結果:{'天不生紅薔', 4321}
二:集合處理方法(操作函數or方法)
1、A.add(x) 如果x不在集合A中,將x增加到A
A = {"重啓重裝版本升級大法好", 123, "python","天不生紅薔",4321}
A.add("1") #只接受一個參數
print(A)
#運行結果:{4321, '重啓重裝版本升級大法好', 'python', '1', '天不生紅薔', 123}
2、A.diAcard(x) 移除A中元素x,如果x不在集合A中,不報錯
A = {"重啓重裝版本升級大法好", 123, "python","天不生紅薔",4321}
A.discard("python")
print(A)
A.discard("1")
print(A)
#運行結果1:{'重啓重裝版本升級大法好', 4321, 123, '天不生紅薔'}
#運行結果2:{'重啓重裝版本升級大法好', 4321, 123, '天不生紅薔'}
3、A.remove(x) 移除A中的元素x,如果x不在集合A中,產生KeyError異常
A = {"重啓重裝版本升級大法好", 123, "python","天不生紅薔",4321}
A.remove(123)
print(A)
#運行結果:{'重啓重裝版本升級大法好', 'python', '天不生紅薔', 4321}
4、A.clear() 移除A中所有元素
A = {"重啓重裝版本升級大法好", 123, "python","天不生紅薔",4321}
A.clear()
print(A)
#運行結果:set()
#set()表示空集合
5、A.pop() 隨機返回A的一個元素,更新A,若A爲空產生KeyError異常
A = {"重啓重裝版本升級大法好", 123, "python","天不生紅薔",4321}
print(A.pop())
#運行結果:天不生紅薔
6、A.copy() 返回集合A的一個副本
A = {"重啓重裝版本升級大法好", 123, "python","天不生紅薔",4321}
B = A.copy()
print(B)
#運行結果:{123, 4321, '重啓重裝版本升級大法好', 'python', '天不生紅薔'}
7、len(A) 返回集合A的元素個數
A = {"重啓重裝版本升級大法好", 123, "python","天不生紅薔",4321}
print(len(A))
#運行結果:5
8、x in A 判斷A中元素x,x在集合A中,返回True,否則返回False
A = {"重啓重裝版本升級大法好", 123, "python","天不生紅薔",4321}
print(123 in A)
print(321 in A)
#運行結果1:True
#運行結果2:False
9、x not in A 判斷A中元素x,x不在集合A中,返回True,否則返回False
A = {"重啓重裝版本升級大法好", 123, "python","天不生紅薔",4321}
print(123 not in A)
print(321 not in A)
#運行結果1:False
#運行結果2:True
10、set(x) 將其他類型變量x轉變爲集合類型
str = "python"+"pypy"
print(set(str))
#運行結果:{'t', 'h', 'p', 'o', 'n', 'y'}
三:集合類型應用場景
1、數據去重:集合類型所有元素無重複
ls = ["p","p","y","y", 123]
print(set(ls))
#運行結果:{'p', 123, 'y'}