
上QQ阅读APP看书,第一时间看更新
4.4 集合
集合(set)在Python中算是比较“年轻”的数据结构,同时使用率也偏低,人们对新事物总需要时间来适应。
4.4.1 定义
集合是一组无序排列的值,其内容无序且元素不重复。它支持用in和not in操作符检查成员,用len内建函数得到集合的元素个数,用for循环遍历集合的成员,这些函数方法是不是似曾相识?但因为集合本身是无序的,所以不可以为集合创建索引或执行切片操作。
创建集合,可以使用“{}”来包括元素,元素之间使用逗号“,”分隔。在创建集合实例时,若有重复的元素则会被自动剔除。
例4-8 集合(set)定义

4.4.2 集合的基本操作
如果想创建空集合,可千万别用{},因为这样创建的是空字典(dict)而非集合(set),下一节我们会详细介绍字典。若想创建空集合,则必须使用set()。想添加元素,可以使用add方法。想删除元素,可以使用remove方法。想测试元素是否存在于集合中,可以使用in。
例4-9 集合set的基本操作

因为集合元素不能重复的特性,导致并非任何元素都可以放到集合中去,比如列表就不行。这里要注意一点,存在一种frozenset集合,它是set集合的不可变版本。因此set集合中所有能改变集合本身的方法,如add、remove、discard、xxx_update等,frozenset统统都不支持;set集合中不改变集合本身的方法,fronzenset都支持。