集合(set) —> 不可重复(既不是序列也不是映射)
- 集合和列表很相似
- 不同点:(集合相比于列表)
1、集合中只能存储不可变对象(比如不能存列表等可变对象)
2、集合中存储的对象是无序的(不是按照元素的插入顺序存储的)
3、集合中元素不能重复
创建集合
1、使用{}来创建集合
s = {1,2,3,4}
注意:
s = {} ---> 这是空字典,不是空集合
2、使用set()函数来创建集合
s = set() ---> 创建一个空集合
- set()可以将序列和字典转化为集合
s = set([1,2,3,4,5,4,3,0,6,5,4,2]) --->列表
# 错误方法: s = set([2, 3], [1 ,2])
# 正确方法: s = set(([2, 3], [1 ,2]))
s = set('hello') ---> 字符串,会将每个字母拆分,并去掉重复字符
s = set({'a':1,'b':2,'c':3}) ---> 字典,只转换键key,不转换值value
检查集合的元素
in 和 not in
例:'s' in s ---> 返回True或False
获取集合元素数量
len()
例:len(s)
添加元素
1、add()方法 ---> 向集合中添加元素
例:s.add(10) ---> 向集合s中添加元素10
s.add('joke') --->向集合中添加元素'joke'
2、update()方法 ---> 将集合、字典、序列中的元素添加到当前集合中
s = {1,2,3,4}
s2 = set('hello') ---> s2 = {'h','o','l','e'}
s.update(s2) ---> 将集合s2的元素传到集合s中
s.update((10,20,30,40,50)) ---> 将元组(10,20,30,40,50)传到集合s中
s.update({1:'a',2:'b'}) ---> 将字典{1:'a',2:'b'}中的键1、2添加到集合s中
删除元素
1、pop()方法 ---> 随机删除并返回集合中的一个元素
例:s.pop() ---> 随机删除集合s中的元素(顺序不定,不可捉摸)
2、remove()方法 ---> 删除集合中的指定元素
例子:s.remove(100)
s.remove('joke')
3、clear()方法 ---> 清空集合
copy浅复制
copy() ---> 详情请看: 4.3 字典
列表也可以浅复制
例:s2 = s.copy() ---> 将集合s的元素复制,得到一个集合s2
集合的运算
1、& ---> 交集运算
s & s2
2、| ---> 并集运算
s | s2
3、- ---> 差集运算
s - s2 ---> 只在s中有而s2没有
4、^ ---> 异或集,获取只在一个集合中出现的元素,即求s和s2不相交的部分
s ^ s2
5、<= ---> 检查一个集合是不是另一个集合的子集
s <= s2 ---> 返回True或False
6、< ---> 检查一个集合是不是另一个集合的真子集
s < s2
(同理,>、>= 也一样)