通过大括号括起来,用逗号分隔元素,特点
1.由不同元素组成
2.无序
3.元素只能是不可变类型,即数字、字符串、布尔和元组,但集合本身可变
4.可直接定义集合s={不同元素},或者s=set(可迭代对象),通过这两种方式定义的集合是可变类型
也可以通过s=frozenset(可迭代对象)定义集合,通过这种方法定义的集合不可变,即不可增加、删除和修改元素
>>> s={1,'a','b','a',5,1} >>> s {1, 'b', 'a', 5} >>> s=set((1,8,2,'r',2)) >>> s {8, 1, 2, 'r'}
5.集合的交、并、差、交叉补集
交集,取两个集合相同的元素:s1.intersection(s2),或者s1&s2
并集,将两个集合的所有元素合并并去重:s1.union(s2),或者s1|s2
差集,其中一个集合减去两个集合的交集:s1.defference(s2),或者s1-s2
交叉补集,两个集合的并集,减去两个集合的交集:s1.symmetric.difference(s2),或者s1^s2
[root@oldboy set]# cat set.py p={'hello','nice'} s={'hi','nice'} print('p',p) print('s',s) print('p&s',p.intersection(s)) print('p|s',p.union(s)) print('p-s',p.difference(s)) print('s-p',s.difference(p)) print('p^s',p.symmetric_difference(s)) [root@oldboy set]# python set.py p {'hello', 'nice'} s {'nice', 'hi'} p&s {'nice'} p|s {'hi', 'hello', 'nice'} p-s {'hello'} s-p {'hi'} p^s {'hello', 'hi'}
6.集合的函数
s.add('元素') 添加元素,添加已经存在的元素不会报错
s.update(多个元素/可迭代对象),添加多个元素
s.clear( ) 清空集合
s.copy( ) 拷贝集合
s.pop( ) 随机删除一个元素
s.remove('元素') 删除指定元素,如果集合中不存在该元素会报错
s.discard('元素') 删除指定元素,如果集合中不存在该元素不会报错
s.intersection_update(s1),求集合s与集合s1的交集并将结果再赋值给集合s
s.difference_update(s1),求集合s与集合s1的差集并将结果再赋值给集合s
s.symmetric_difference_update(s1),求集合s与集合s1的交叉补集并将结果再赋值给集合s
s.isdisjoint(s1),判断两个集合是否有交集,有交集则返回False,无交集则返回True
s.issubset(s1),判断是否是子集,如果集合s是集合s1的子集则返回True,否则返回False
s.issuperset(s1),判断是否是父集,如果集合s是集合s1的父集则返回True,否则返回False