1. 定義:由 (不同元素) 組成的集合,其中是一組無序的可hash的值,可以作為字典的key
2. 特性:將不同的值放到一起,不同的集合間來做關系運算,集合中的元素必須是不可變類型,沒有重復的元素
set方法: s = {1,3,6,'test',3,4,2,} print(s,type(s)) 結果:{1, 2, 3, 4, 6} <class 'set'> m = set('hello') -- 使用set,可在里面傳入列表,將其遍歷轉換成集合 print(m) 結果:{'l', 'e', 'o', 'h'} s.add('3') add只能更新一個值 s.add(3) print(s) 結果:{1, 2, 3, 4, 6, '3'} s.clear() - 清空集合 s.copy() - 淺拷貝 s.pop() - 隨機刪除 s.remove('test') - 刪除指定的值,若傳入的值不存在會報錯 s.discard('test') - 刪除指定的值,若傳入值不存在 也不會報錯 s= {3,4} s.update((1,2)) 更新集合 print(s) 結果:{1, 2, 3, 4} 將集合設置成不可變類型: s = frozenset('hello') print(s) 結果:frozenset({'l', 'o', 'e', 'h'})
3. 集合的交 ,差,並集,交差補集,空集,子集,父集
求交集和並集: s1 = {1,3,6,4,2,} s2 = {1,5,7,6,2,8,} print(s1 & s2) print(s1 | s2) 結果: {1, 2, 6} {1, 2, 3, 4, 5, 6, 7, 8} 求差集: print(s1 - s2) print(s2 - s1) 結果: {3,4} {8,5,7} 求交差補集: print(s1 ^ s2) 結果:{3, 4, 5, 7, 8} 交集為空返回True: s3 = {1,2} s4 = {3,4} print(s3.isdisjoint(s4)) 結果:True 子集(s4是s3的子集,則返回True): s3 = {1,2,3,4} s4 = {3,4} print(s4.issubset(s3)) 結果:True 父集(s3是s4的父集,則返回True): s3 = {1,2,3,4} s4 = {3,4} print(s3.issuperset(s4)) 結果:True