python之浅谈set集合
一、什么是集合
集合(set)是一个无序且不能有重复元素的容器。其功能是:
去重:把一个可迭代对象变成集合后,就可以自动去重
数据测试:可以测试两组数据之间的交集、并集、差集、反向交集、超集、子集等
二、集合的定义
集合只有一种定义方法,即使用工厂函数set,并返回一个set的对象。格式如下:
s = set() #创建并返回一个空集合
s = set(iterable) #创建一个新集合
s1 = set("abc") -----> 输出 {'a', 'b', 'c'}
s2 = set(["aa", "bb", "cc"]) ----> 输出 {"aa", "bb", "cc"}
三、集合的常用方法
增加:s.add(element) #把对象element添加到集合当中,如果集合中已经存在该元素,则该集合不会有变化
s1.add("d") -----> {'a', 'b', 'c', 'd'}
s.update(iterator) #更新集合
s1.update("def") -----> {'a', 'b', 'c', 'd', e', 'f'} #因为集合中元素不能有重复的,所以只有一个d
删除:s.pop() #随机删除集合中的一个元素
s1.pop() ------> 随机删除集合s1中的一个元素
s.remove(element) #删除集合中指定的元素,如果不存在,则会出错
s1.remove('a') ----->删除集合s1中的元素a
s.discard(element) #删除集合中指定的元素,如果集合中不存在该元素,则什么也不会做
s1.discard("c") ------> 删除集体s1中的“c"
s.clear() #清空集合
四、集合的数据测试常用方法
a = set([1, 2, 3, 4, 5])
b = set([ 4, 5, 6, 7, 8])
c = set([2, 3, 5])
1、取交集 intersection,对应的符号:&
a.intersection(b) ------> {4, 5}
2、并集 union,对应的符号:|
a.union(b) ------> {1, 2, 3, 4, 5, 6, 7, 8}
3、差集 difference,对应的符号为:-
a.difference(b) ------> {1, 2, 3}
b.difference(a) ------> {8, 7, 6}
4、反向交集 symmetric_difference,对应的符号:^
a.symmetric_difference(b) ------> {1, 2, 3, 6, 7, 8}
5、超集 issupseter
a.issupseter(b) ------> False
a.issupseter(c) -----> True
6、子集 issubset
c.issubset(a) -------> True