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
相关文章
相关标签/搜索