關於Python集合(set)的整理
阿新 • • 發佈:2018-06-18
spl PE style python 叠代 names lin ren ()
集合
- 不同元素組成
- 無序
- 集合當中元素必須是不可變類型(數字,字符串,元組)
集合的定義:
s = {1,2,3,3,4}
s = {‘hello’}
轉換只有可叠代對象才可以轉換
set 方法
-add #將對象添加到集合中
s ={1,2,3,4,5,6} s.add("s") s.add(‘3‘) s.add(3) print(s) #結果:{1, 2, 3, 4, 5, 6, ‘s‘, ‘3‘}
-clear
s ={1,2,3,4,5,6} s.clear() print(s) #結果:set()
-copy
s = {1,2,3,4,5,6} s1 = s.copy() print(s1) #結果:{1, 2, 3, 4, 5, 6}
-pop #隨機刪除
-remove #指定刪除
s = {‘sb‘,1,2,3,4,5,6} s.pop() print(s)#隨機刪除 s.remove(‘sb‘) print(s)#指定刪除 #s.remove(‘helo‘)#刪除元素不存在,會報錯 s.discard(‘ssbb‘)#刪除元素,不存在也不會保錯 #結果:{2, 3, 4, 5, 6, ‘sb‘} #{2, 3, 4, 5, 6}
一般方法求共同項
python_1 =[‘lcg‘,‘szw‘,‘zjw‘] linux_1 = [‘lcg‘,‘szw‘] python_and_linux= [] for p_name in python_1: if p_name in linux_1: python_and_linux.append(p_name) print(python_and_linux) #結果:[‘lcg‘, ‘szw‘]
#用集合的方式 python_1 =[‘lcg‘,‘szw‘,‘zjw‘] linux_1 = [‘lcg‘,‘szw‘,‘sb‘] p_s = set(python_1)#轉換為集合 l_s =set(linux_1) print(p_s)
1 print(l_s) 2 print(p_s.intersection(l_s))#View Code求交集 3 print(p_s&l_s) 4 5 #求並集 6 print(p_s.union(l_s)) 7 print(p_s|l_s) 8 9 #求差集 10 print("差集",p_s - l_s) 11 print("差集",l_s - p_s) 12 print(p_s.difference(l_s)) 13 14 15 ‘‘‘結果: 16 {‘lcg‘, ‘zjw‘, ‘szw‘} 17 {‘lcg‘, ‘sb‘, ‘szw‘} 18 {‘lcg‘, ‘szw‘} 19 {‘lcg‘, ‘szw‘} 20 {‘lcg‘, ‘zjw‘, ‘sb‘, ‘szw‘} 21 {‘lcg‘, ‘zjw‘, ‘sb‘, ‘szw‘} 22 差集 {‘zjw‘} 23 差集 {‘sb‘} 24 {‘zjw‘}‘‘‘
1 python_1 =[‘lcg‘,‘szw‘,‘zjw‘] 2 linux_1 = [‘lcg‘,‘szw‘,‘sb‘] 3 p_s = set(python_1)#轉換為集合 4 l_s =set(linux_1) 5 #交叉補集 6 #交叉補集 7 print(p_s.symmetric_difference(l_s)) 8 print(p_s^l_s) 9 結果: 10 {‘sb‘, ‘zjw‘} 11 {‘sb‘, ‘zjw‘}交叉補集
1 -differnece_update 2 python_1 =[‘lcg‘,‘szw‘,‘zjw‘] 3 linux_1 = [‘lcg‘,‘szw‘,‘sb‘] 4 p_s = set(python_1) 5 l_s = set(linux_1) 6 print(p_s - l_s) 7 print(p_s) 8 p_s.difference_update(l_s)#更新求差集,更新的數據在 9 print(p_s) 10 結果: 11 {‘zjw‘} 12 {‘lcg‘, ‘zjw‘, ‘szw‘} 13 {‘zjw‘}更新求差集
s1 = {1,2,3,4} s2 = {5,6,7} print(s1.isdisjoint(s2))#判斷是否沒有交集,如果沒有交集則返回True #結果:True
1 s1 = {1,2} 2 s2 = {1,2,3} 3 print(s1.issubset(s2))#是否子集的情況 4 #結果:True-判斷s1是s2 的子集
1 print(s2.issuperset(s1))#是否是父集 2 #結果:True
s1 = {1,2}
1 #去重,在不考慮順序的情況下 2 names = ["alex","alex",‘wupeiqi‘] 3 names = list(set(names)) 4 print(names) 5 #結果:[‘alex‘, ‘wupeiqi‘]Frozenset() 冰凍集合,即不可變集合
s2 = {1,2,3} s1.update(s2)#更新集合中的數據,可以傳入可叠代對象 print(s1) #結果:{1, 2, 3}
關於Python集合(set)的整理