Python之 set的特色

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

Python之 更新set

因爲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
相關文章
相關標籤/搜索