5.4 集合 (supercalifragilisticexpialidocious)
Python 也包含了 set (集合) 的数据结构。一个 set 是一组没有重复元素的无序集合。基本的用法包含了成员测试和消除重复登入。Set 对象也支持数学上的操作,比如并集、交际、差集、对称差。
花括号或者 set() 函数可以用来创建一个 set。注意,创建一个空的 set 必须使用 set() 函数,不要使用 {}。后一种方法会创建出一个空的 字典,我们将在下一节讨论这种数据接结构。
下面是一个简短的示例:
>>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}>>> print(basket) # show that duplicates have been removed{'orange', 'banana', 'pear', 'apple'}>>> 'orange' in basket # fast membership testingTrue>>> 'crabgrass' in basketFalse>>> # Demonstrate set operations on unique letters from two words...>>> a = set('abracadabra')>>> b = set('alacazam')>>> a # a 中独有的字母{'a', 'r', 'b', 'c', 'd'}>>> a - b # a 中有,b 中没有的字母{'r', 'd', 'b'}>>> a | b # a 或 b 或 a b 都有的字母{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}>>> a & b # a b 都有的字母{'a', 'c'}>>> a ^ b # a 或 b 有,但是不是两者都有的{'r', 'd', 'b', 'm', 'z', 'l'}
和列表解析类似,也可以 集合解析
>>> a = {x for x in 'abracadabra' if x not in 'abc'}>>> a{'r', 'd'}
