4.Python数据集之集合

一、数据类型集合:

集合是一个无序的,不重复的数据组合,它的主要作用如下:

去重,把一个列表变成集合,就自动去重了。

关系测试,测试两组数据之间的交集,差集、并集等关系。

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)   判断

原文地址:https://www.cnblogs.com/qiandong/p/8825040.html