set集合(去重)
阿新 • • 發佈:2019-02-12
set的新增資料方法有二, 區別: add() 方法會將整個資料作為一項加入,而 update() 會將整個資料切分成單個字元逐一新增進 set() 集合 1、呼叫 update() 方法 >>> b=set() >>> b.update('python') >>> b set(['h', 'o', 'n', 'p', 't', 'y']) 2、呼叫 add() 方法 >>> b=set() >>> b.add('python') >>> b set(['python']) ------------------------------------------------------------------------------------------ 存在測試: in & not in ------------------------------------------------------------------------------------------ 集合運算: >>> a = set('abcde') >>> b = set('cdefg') >>> a set(['a', 'c', 'b', 'e', 'd']) >>> b set(['c', 'e', 'd', 'g', 'f']) >>> a & b #對應 a.intersection(b) set(['c', 'e', 'd']) >>> a | b #對應 a.union(b) set(['a', 'c', 'b', 'e', 'd', 'g', 'f']) >>> a - b #對應 a.difference(b) set(['a', 'b']) ------------------------------------------------------------------------------------------ 列表去重複:先轉換成set() ,再用list()轉換為列表 >>> lst = [1,2,3,2,1] >>> lst [1, 2, 3, 2, 1] >>> lst = set(lst) >>> lst set([1, 2, 3]) >>> lst = list(lst) >>> lst [1, 2, 3] ------------------------------------------------------------------------------------------ 超類檢測: >>> c =a|b >>> c.issubset(a) False >>> c.issuperset(a) True ------------------------------------------------------------------------------------------ frozenset() 生成一個不可變的集合,不可改變其中資料。可用於生成集合: set( frozenset( lst ) ) ------------------------------------------------------------------------------------------ 活用 set 示例 判斷 search 中的字元是否都出現在 a 中: a = "aAsmr3idd4bgs7Dlsf9eAF" search = 'baA3idbg7D' u = set( a ) u.update( list( search ) ) print len( set( a ) == len( u ) ) 由於set 中的元素不能重複,所以如果update過後長度沒有改變,則說明該字元已經存在於 a ,否則不存在(輸出 False)。