1. 程式人生 > >Python之數據結構:集合

Python之數據結構:集合

ict 轉換成 創建 可變 discard 重復 如果 upper amp

一、set集合 1、集合是一個無序不重復元素集,有去重的作用 set集合類需要的參數必須是叠代器類型的,如:序列、字典等,然後轉換成無序不重復的元素集。由於集合是不重復的,所以可以對字符串、列表、元組進行去重操作。 (1)創建 s1=set(‘This is string‘) ([]) set1=set(‘python‘) 結果:set([‘h‘, ‘o‘, ‘n‘, ‘p‘, ‘t‘, ‘y‘]) s2=set([1,2,3]) s3=set((1,2,3,4,3,2)) set([1,2,3,4]) s4=set({1:2,2:3,6:6}) 字典只會把key值列表(相當於dict.keys()返回值)賦值給set set([1,2,6]) 註意數值類型不能作為集合的參數,如int類型。 (2)添加元素 add() 把元素作為整體添加 update() 把元素中的子元素一個個添加 s2.add(‘abc‘) set([1,2,3,‘abc‘]) s2.update(‘abc‘) set([‘a‘,1,2,3,‘b‘,‘c‘]) (3)刪除元素 a、remove() s2.remove(‘c‘) set ([‘a‘,1,2,3,‘b‘]) 如果‘c‘不存在,會拋出異常 b、discard(value) s2.discard(3) c、pop() s2.pop() 確保集合有元素,刪除的元素不確定是哪個。如果為空引發KeyError錯誤 (4)遍歷集合 for i in s2: print i (5) 枚舉enumerate() for index,elem in enumerate(2): print index,‘:‘,elem 類型轉化: str(s2) list(s2) tuple(s2) (6)清空集合 s1.clear() (7)復制集合 s6=s2.copy() (8)結合的長度 len(s2) 2、集合的特殊操作 (1)交集、並集、差集 s1=set([1,2,3]) s2=set([2,3,4,5]) s3=s1 & s2 交集 set([2,3]) s4=s1 | s2 並集 set([1,2,3,4,5]) s5=s1-s2 差集 在s1中但不在s2中 set([1]) s6=s1.difference(s2) s6的結果 set([1]) 同s5 (2) > 、>= < <= != print s1>=s2 (3) issupperset()父集 s11=set([1,2]) print s1.issupperset(s11) Ture s1是否為s11的父集 print s1.issupperset(s2) False issubset() 子集 s1.issubset(s2) s1是否為s2的子集 (4)in 和not in 成員運算符 if s1 in s2: 3、不可變集合 frozenset() fs=frozenset([1,2,3]) 如果試圖改變不可變集合中的元素,就會報AttributeError錯誤。

Python之數據結構:集合