一、数据类型集合:
集合是一个无序的,不重复的数据组合,它的主要作用如下:
去重,把一个列表变成集合,就自动去重了。
关系测试,测试两组数据之间的交集,差集、并集等关系。
Set 代表集合。
集合中的元素有三个特征:
1、 确定性(元素必须可hash)
2、 互异性(去重)
3、 无序性(集合中的元素没有先后之分),如集合(3,5,4)算作同一个集合。
将列表转为集合。
>>> l = [1,2,3,4,5,5,6,7] 有重复值的列表。
>>>set(l) 将列表转成集合。
>>>
s = {1,2,3,4,5}
s.add(6) #增加,重复的增加不上。
s.pop() #删除随机删除。
s.remove(6) #指定删除数值。 如果存在就删除,不存在报错。
s.discard(6) #指定删除,如果存在就删除,不存在没有提示。
s.update([1,2,3,4,5]) #增加,可以一次增加多个数值。
s.clear() #清空列表。
s.difference_update(s2) #将s和s2 的交集附给s
s.intersection_update(s2) #将s和s2的差集附给s。
交集:
>>>iphone7.intersection(iphone8) 求交集,同时买了7和8 的
>>>iphone7 & iphone 8 求交集,同时买了7和8 的
差集:
>>>iphone7.difference(iphone8) 求差集,只买了iPhone7,没有买8的。
>>> iphone7 - iphone8 求差集,只买了iPhone7,没有买8的。
>>>iphone8.difference(iphone7) 求差集,只买了iPhone8,没有买7的。
>>> iphone8 – iphone7 求差集,只买了iPhone8,没有买7的。
并集:
>>>iphone8.union(iphone7) 把连个集加起来,去重。
>>>iphone8 | iphone7 把连个集加起来,去重。
对称差集:
>>>iphone8.symmetric_difference(iphone7) #只买了iPhone8和iPhone7的人。
包含关系:
In,not in : 判断某元素是否在集合内==,!=:判断俩个集合是否相等。
两个集合之间一般有三种关系,相交、包含、不相交,在python中分别用
下面的方法判断:
Set.isdisjoint(s):判断俩个集合是不是不相交。
Set.issuperset(s): 判断集合是不是包含其它集合,等同于 a>=b
Set.issubset(s): 判断集合是不是被其他集合包含,等同于a<=b
子集or超集:超集包含子集, 超集相当于省,子集相当于市。
s.issubset(s2) 判定是不是s2的子集。
s.issuperset(s2) 判断