python集合及集合函数

通过大括号括起来,用逗号分隔元素,特点

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

猜你喜欢

转载自www.cnblogs.com/Forever77/p/9747200.html