set的内部结构和dict很像,唯一区别是不存储value,因此,判断一个元素是否在set中速度很快。
set存储的元素和dict的key类似,必须是不变对象,因此,任何可变对象是不能放入set中的。
最后,set存储的元素也是没有顺序的。
由于 set 也是一个集合,所以,遍历 set 和遍历 list 类似,都可以通过 for 循环实现。
直接使用 for 循环可以遍历 set 的元素:
>>> s = set(['Jack', 'Lisa', 'Bart'])>>> for name in s:... print name... LisaJackBart
注意: 观察 for 循环在遍历set时,元素的顺序和list的顺序很可能是不同的,而且不同的机器上运行的结果也可能不同。
Python之 更新set
由于set存储的是一组不重复的无序元素,因此,更新set主要做两件事:
一是把新的元素添加到set中,二是把已有元素从set中删除。
添加元素时,用set的add()方法:
>>> s = set([1, 2, 3])>>> s.add(4)>>> print sset([1, 2, 3, 4])
删除set中的元素时,用set的remove()方法
>>> s = set([1, 2, 3, 4])>>> s.remove(4)>>> print sset([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