python3 組合資料型別(一)集合型別及操作
阿新 • • 發佈:2019-01-31
1.集合型別
集合是大於等於0個元素的無序組合,用{}表示,元素間用逗號隔開;用{}或set()函式建立集合,但空集合必須用set()函式。
特點:集合元素之間無序,每個元素唯一(不存在相同元素),元素不可更改,不能是可變資料型別,而是字串、整數型、浮點型、元組(因為可變資料型別元素是可以被更改的,一旦集合中的元素被更改就有可能和別的元素一樣,導致集合出錯)。
2.集合型別操作符
S|T 並:返回一個新的集合,包括S和T的所有元素;
S-T 差:返回一個新的集合,包括S但不在T中的元素;
S&T交:返回一個新的集合,S和T共有的元素;
S^T補:返回一個新的元素,包含S和T中非相同的元素;
S<=T(S<T) 及S>=T(S>T):返回True或False,判斷兩者包含關係。
增強操作符有:
S|=T,S-=T,S&=T,S^=T即將上述返回的新的元素更新S集合。
>>> A={'py',12,123,12,1} #{1, 123, 12, 'py'} >>> B={'p','py',123,1} >>> A|B {1, 'p', 12, 123, 'py'} >>> A-B {12} >>> A&B {1, 123, 'py'} >>> A^B {'p', 12} >>> A>B #A不包含B False >>> A<B False #A不含於B
>>> C={1,123}
>>> C<A
True #體會 >或<是判斷包含關係的
3.集合型別處理方法
>>> s={123,'df'} >>> s.add(12) #s.add(x):x不在s集合中,將x增加到s >>> s {123, 12, 'df'} >>> s.discard(1) #s.discard(x):刪除s集合中的x元素,若x不存在不報錯 >>> s {123, 12, 'df'} >>> s.discard(12) >>> s {123, 'df'} >>> s.remove(1) #s.remove(x):刪除s集合中的x元素,若x不存在報錯keyError Traceback (most recent call last): File "<pyshell#9>", line 1, in <module> s.remove(1) KeyError: 1 >>> s.remove(123) >>> s {'df'} >>> s.clear() #s.clear()清空s集合中的所有元素 >>> s set() >>> s={123,'df'} >>> s.pop() #s.pop()隨機返回一個元素,並在s中刪除該元素,若s為空產生KeyError異常 123 ss=s.copy() #複製s集合 >>> ss {123, 'df'} >>> sss=s #和s.copy()函式同效 >>> sss {123, 'df'} >>> len(s) #s集合的元素個數 2 >>> 1 in s #判斷元素是否在s中 False >>> 123 in s True
4.集合型別應用
1)包含關係比較
>>> s={123,'df',1,'a'}
>>> {'a'}<=s
True
2)資料去重:集合型別元素唯一的特點
>>> s=['p','py','p','y']
>>> s=set(s)
>>> s
{'y', 'py', 'p'}
>>> t=list(s) #將集合型別轉為列表型別
>>> t
['y', 'py', 'p']