set的內部結構和dict很像,惟一區別是不存儲value,所以,判斷一個元素是否在set中速度很快。python
set存儲的元素和dict的key相似,必須是不變對象,所以,任何可變對象是不能放入set中的。spa
最後,set存儲的元素也是沒有順序的。code
因爲 set 也是一個集合,因此,遍歷 set 和遍歷 list 相似,均可以經過 for 循環實現。對象
直接使用 for 循環能夠遍歷 set 的元素:rem
>>> s = set(['Jack', 'Lisa', 'Bart']) >>> for name in s: ... print name ... Lisa Jack Bart
注意: 觀察 for 循環在遍歷set時,元素的順序和list的順序極可能是不一樣的,並且不一樣的機器上運行的結果也可能不一樣。class
因爲set存儲的是一組不重複的無序元素,所以,更新set主要作兩件事:循環
一是把新的元素添加到set中,二是把已有元素從set中刪除。遍歷
添加元素時,用set的add()方法:方法
>>> s = set([1, 2, 3]) >>> s.add(4) >>> print s set([1, 2, 3, 4])
刪除set中的元素時,用set的remove()方法dict
>>> s = set([1, 2, 3, 4]) >>> s.remove(4) >>> print s set([1, 2, 3])
若是刪除的元素不存在set中,remove()會報錯。
判斷元素是否在set中,使用in操做符。
s = set(['Adam', 'Lisa', 'Paul']) L = ['Adam', 'Lisa', 'Bart', 'Paul'] for name in L: if name in s: s.remove(name) else: s.add(name) print s