標籤:car 實值型別 abc att int python 建立 迭代 異常
一、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) Falseissubset() 子集s1.issubset(s2) s1是否為s2的子集 (4)in 和not in 成員運算子if s1 in s2:3、不可變集合 frozenset()fs=frozenset([1,2,3])如果試圖改變不可變集合中的元素,就會報AttributeError錯誤。
Python之資料結構:集合