python 中集合的增、删、改、查及关系运算操作

一、创建集合

  由于集合具有天生去重、里面的元素不可变、无序等特点,创建集合时,列表和字典等可变数据类型不能作为集合的元素,重复的对象也不能同时存入两次。

s = {1, 2, 3, 4, 'name', 'age'}

二、增加

  格式:s.add(element)  # 只能添加一个元素 

s = {1, 2, 3, 4, 'name', 'age'}
s.add('height')
print(s)
结果:{1, 2, 3, 4, 'name', 'age', 'height'}

  格式:s1.update(s2)   # 合并两个集合,重复的元素自动去重

s1 = {1, 2, 3, 4, 'name', 'age'}
s2 = {1, 2, 'height', 'sex'}
s1.update(s2)
print(s1)
结果:{1, 2, 3, 4, 'sex', 'age', 'height', 'name'}

三、删除

  1、s.discard(element)  # 删除一个元素,如果元素存在,删除元素,如果不存在,什么也不做。

  2、s.pop()  # 随机删除一个元素,并返回

  3、s.remove(element)  # 删除指定元素,元素必须存在,不存在会报错

四、查找

  格式:element in s, 如果存在,返回true,如果不存在返回false。

五、修改

  集合元素不能修改

六、关系运算

  1、交集 

s1 = {1, 2, 3, 4, 6, 7, 8, 'name', 'age'}
s2 = {1, 4, 6, 'name', 'age', 'sex'}
print(s1.intersection(s2))  #  或者 s1 & s2
结果:{1, 4, 6, 'name', 'age'}

  2、并集

s1 = {1, 2, 3, 4, 6, 7, 8, 'name', 'age'}
s2 = {1, 4, 6, 'name', 'age', 'sex'}
print(s1.union(s2))  # 或者 s1 | s2
结果:{1, 2, 3, 4, 'sex', 6, 7, 8, 'name', 'age'}

  3、差集

s1 = {1, 2, 3, 4, 6, 7, 8, 'name', 'age'}
s2 = {1, 4, 6, 'name', 'age', 'sex'}
print(s1.difference(s2))  # 或s1 - s2
结果:{8, 2, 3, 7}

  4、对称差集

s1 = {1, 2, 3, 4, 6, 7, 8, 'name', 'age'}
s2 = {1, 4, 6, 'name', 'age', 'sex'}
print(s1.symmetric_difference(s2))  # 或者 s1 ^ s2
结果:{2, 3, 7, 8, 'sex'}

   5、两个集合之间的关系

  两个集合之间一般有三种关系,相交、包含、不相交。在python下用下边的方法判断:

  1、s1.isdisjoint(s2)  判断两个集合是不是不相交,返回true或false

  2、s1.issubset(s2)  判断s1是否是s2的子集,返回true或false

  3、s1.isuperset(s2) 判断s1是否是s2的父集,返回true或false

# isdisjoint()
s1 = {1, 2, 3, 'name', 'age'}
s2 = {0, 'sex'}
print(s1.isdisjoint(s2))

# issubset()、issuperset()
s1 = {1, 2, 3, 'name', 'age'}
s2 = {1, 2}
print(s2.issubset(s1))
print(s1.issuperset(s2))
结果:
True
True
True

猜你喜欢

转载自www.cnblogs.com/feixiangshuoshuo/p/12409872.html