集合的概念
- 集合就是一组不可变类型元素的组合,这些元素在集合中是唯一的
- 判断一个元素是否在集合里面可以使用成员操作符in 或者not in
- 成员操作符对于其他的容器类型也是适用的(字符串、列表、元组)
- 集合本身是可迭代的数据类型,因此可以使用for循环遍历里面的所有元素
集合的创建以及赋值
集合的创建只能通过集合的工厂方法set和frozenset创建。
# 创建空的可变集合以及不可变集合 s = set() s1 = frozenset() # 创建一个空的不可变集合基本上是没什么意义的 # 给集合初始化 s2 = set('helloworld') s3 = frozenset('bookshop') # 注意:使用set和frozenset方法创建集合的时候,里面的参数必需是可迭代类型,同时类型里面的成员必需是可哈希 的,否则会报错
访问集合中的值
因为集合不是序列类型,也就是跟字典一样都是无序的,因此不能通过下标的方式进行访问里面的元素,所以只能 通过成员操作符in和not in来判断某个元素是否在集合里面,或者通过for循环把集合中的元素遍历出来。
>>> s = set([1,2,3,4,5]) >>> 1 in s True >>> 'a' in s False >>> 9 not in s True >>> for i in s: ··· print i ··· 1 2 3 4 5
对可变集合进行增删操作
# 使用add方法给集合添加新的元素 s = set('hello world') s.add('haha') # 将haha添加到集合s里面 # 使用update方法添加多个元素进去,update方法接收的是一个可迭代类型参数,要求跟前面的一样 s.update('python') # 迭代python,将里面的元素一个个的添加到集合s中 # 使用remove方法删除集合中的元素 s.remove('a') # 将字符串a从集合中删除 # 使用-=符号一下子删除集合中的多个元素,其实就是求两个集合的差集 s -= set("hello") # 把hello这几个字符串从集合s中删除 # 使用clear方法清空集合中的所有成员 s.clear() # 注意,对于不可变集合是没有增加和删除元素的操作的,只能访问其中的元素 # 删除整个集合用del关键字就可以了 del s