集合(set):无序的,不重复的数据组合,它的主要作用如下:

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

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

1.基本操作:修改,删除,合并

>>> s = {1,2,3,4}
>>> s.add(2) #添加元素,同时去掉重复的元素
>>> s
{1, 2, 3, 4}
>>> s.add(6)
>>> s
{1, 2, 3, 4, 6}
>>> s.pop() #随机删除一个元素,返回被删除元素值
1
>>> s
{2, 3, 4, 6}
>>> s.remove(6) #删除指定元素,若元素不存在则报错  discard用法与remove一致,但元素不存在时不报错
>>> s
{2, 3, 4}
>>> s.update({4,5,6,7})#将两个集合合并起来
>>> s
{2, 3, 4, 5, 6, 7}
2.关系测试:交集、差集、并集

>>> iphone7 = {'alex','rain','jack','old_driver'}
>>> iphone8 = {'alex','jack','shanshan','old_boy'}
>>> iphone7.intersection(iphone8) #i两个集合的交集
{'jack', 'alex'}
>>> iphone7 & iphone8 #两个集合的交集
{'jack', 'alex'}
>>> iphone7.difference(iphone8) #iphone7与iphone8不同的差集
{'old_driver', 'rain'}
>>> iphone7 - iphone8 #iphone7与iphone8不同的差集
{'old_driver', 'rain'}
>>> iphone7.union(iphone8) #iphone7和iphone8的并集
{'old_driver', 'rain', 'old_boy', 'alex', 'jack', 'shanshan'}
>>> iphone7 | iphone8 #并集
{'old_driver', 'rain', 'old_boy', 'alex', 'jack', 'shanshan'}
>>> iphone7.symmetric_difference(iphone8) #对称差集,二者并集-交集
{'old_driver', 'rain', 'old_boy', 'shanshan'}
>>> iphone7 ^ iphone8 #对称差集,二者并集-交集,即两个补集的并集
{'old_driver', 'rain', 'old_boy', 'shanshan'}
>>> s1 ={1,2,3,4,5}
>>> s2 ={1,2,3}
>>> s1.issubset(s2) #判断s2是否是s1的子集
False
>>> s1.issuperset(s2) #判断s2是否是s1的超集
True
>>> s1 > s2 #判断s2是否是s1的子集
True
>>> s1 < s2 #判断s2是否是s1的超集
False
>>> s1.isdisjoint(s2) #判断是否不相交
False
>>> s1.add(-1)
>>> s1.difference(s2)
{4, 5, -1}
>>> s1.difference_update(s2) #把差集的结果赋给s1
>>> s1
{4, 5, -1}