集合类型(set)的使用
集合的特性:天然去重,集合无序。集合本身是可变数据类型,但是集合内的元素一定是不可变数据类型。
集合用于做关系测试,集合的表述形式是 " { } ",和字典的表述一样,但是集合没有key和value的关系。
集合的使用方法:交集intersection( )、差集difference( )、并集union( )、反向差集(也叫对称差集)symmetric_difference( )。
判断元素是否在集合中,用 in 去判断。用布尔值返回结果,True是在集合里,False是不在集合里。
Linux = {'wang','george',} print("wang" in Linux)
交集intersection( ):两个数据集里面都有的。
Linux = {'wang','george',} python = {'wang',"george",'you','mack','rachel'} print(Linux.intersection(python)) print(Linux & python)
并集union( ):将两个数据集合并在一个数据集里,同时去重。union不会改变原有的集合数据,只是将求并集的结果返回而已。
Linux = {'wang','george',"KFC"} python = {'wang',"george",'you','mack','rachel'} print(Linux.union(python)) print(Linux | python)
并集的另外用法:update( )方法。update()和union()的区别在于update是会改变数据集的,而union不会改变。
Linux1 = {'wang','george',"KFC"} Linux2 = {'wang','george',"KFC"} python = {'wang',"george",'you','mack','rachel'} print(Linux1.union(python)) print(Linux1) Linux2.update(python) print(Linux2)
差集difference( ):在A数据集里有,在B数据集里没有的。
Linux = {'wang','george',} python = {'wang',"george",'you','mack','rachel'} print(Linux.difference(python)) #打印Linux有,而python没有的 print(python.difference(Linux)) #打印python有,而Linux没有的 print(Linux - python) print(python - Linux)
反向差集(也叫对称差集)symmetric_difference( ):两个数据集除去都有的元素,剩下的元素组成新的集合,就是反向差集。
Linux = {'wang','george',"KFC"} python = {'wang',"george",'you','mack','rachel'} print(Linux.symmetric_difference(python)) print(Linux ^ python)
### 集合的增删改查操作:
增操作:
Linux = {'wang','george',"KFC"} python = {'wang',"george",'you','mack','rachel'} Linux.add("aaaa") #增加 print(Linux) Linux1 = Linux.copy() #复制,和列表字典的复制一样 print(Linux) print(Linux1)
删操作:
Linux = {'wang','george',"KFC"} python = {'wang',"george",'you','mack','rachel'} Linux.clear() #清空Linux集合 print(Linux) Linux.discard('KFC') # 删除 但是,元素不存在,不会报错 print(Linux) Linux.pop() #随机删除 print(Linux) Linux.remove('ggg') # 删除 但是,元素不存在,会报错 print(Linux)
改操作:
Linux = {'wang','george',"KFC"} python = {'wang',"george",'you','mack','rachel'} Linux.update(python) #把Python合并到Linux中。彻底修改Linux集合。 print(Linux) Linux_diff = Linux.difference(python) #求差集并赋值改Linux集合 print(Linux_diff)
查操作:
Linux = {'wang','george',"KFC"} python = {'wang',"george",'you','mack','rachel'} a = Linux.issubset(python) #子集,判断Linux,是不是Python的子集 a = Linux.issuperset(python) #子集,判断Linux,是不是Python的子集 print(a) b=Linux.isdisjoint(python) #两个集合没有关系,返回真。 print(b)
------------ END ------------