集合(set)在python2.3才引入。set类位于sets模块中。集合是由序列构建,主要用于检查成员资格。集合元素的顺序是随意的。
>>>set(range(5))
set([0,1,2,3,4])
>>>set([0,1,2,3,0,1,2,3,4,5])
set([0,1,2,3,4,5])
集合除了检查成员资格外,还可以使用标准集合操作(比如交集和并集)。
>>>a = set([1,2,3])
>>>b = set([2,3,4])
>>>a.union(b)
set([1,2,3,4])
>>>a|b
set([1,2,3,4])
>>>c = a&b
>>>c.issubset(a)
True
集合是可变的,所以不能用作字典的键。那么问题来了:集合就不能包含其他集合?但是集合的集合是很正常的。幸好还有frozenset类型,用于代表不可变的集合。
>>>a=set()
>>>b = set()
>>>a.add(frozenset(b))