使用工厂方法 set()和 frozenset():
>>> s = set('cheeseshop') >>> s set(['c', 'e', 'h', 'o', 'p', 's']) >>> t = frozenset('bookshop') >>> t frozenset(['b', 'h', 'k', 'o', 'p', 's']) >>> type(s) <type 'set'> >>> type(t) <type 'frozenset'>
用各种集合内建的方法和操作符添加和删除集合的成员:
>>> s.add('z') >>> s set(['c', 'e', 'h', 'o', 'p', 's', 'z']) >>> s.update('pypi') >>> s set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y', 'z']) >>> s.remove('z') >>> s set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y']) >>> s -= set('pypi') >>> s set(['c', 'e', 'h', 'o', 's'])
删除集合
del s
成员关系 (in, not in)
>>> s = set('cheeseshop') >>> t = frozenset('bookshop') >>> 'k' in s False >>> 'k' in t True >>> 'c' not in t True
集合等价/不等价
>>> s == t False >>> s != t True >>> u = frozenset(s) >>> s == u True >>> set('posh') == set('shop') True
差补/相对补集( – )
两个集合(s 和t)的差补或相对补集是指一个集合C,该集合中的元素,只属于集合s,而不属于集合t。差符号有一个等价的方法,difference().
>>> s - t set(['c', 'e'])
对称差分( ^ ):对称差分是集合的XOR
利用集合去除列表中的重复元素
>>> xs = [5, 8, 5, 1, 1, 4, 2, 4, 3, 2] >>> set(xs) set([1, 2, 3, 4, 5, 8]) >>> sorted(set(xs), key=xs.index) # 保持原来的顺序 [5, 8, 1, 4, 2, 3]