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