集合是一个无序的,不重复的数据组合,它主要的作用如下:
.去重,把一个列表变成集合,就自动去重了
.关系测试,测试两组数据之前的交集,差集,并集等关系
常用操作
###去重 #首先创建一个列表 list_l = [1,2,3,3,4,5,8,6,5,6,9] #然后把列表转成集合set() list_l = set(list_l) print(list_l,type(list_L))
##交集 intersection()取出相同的元素
##集合运算符 & list_1 & list_2 list_l = [1,1,1,1,2,24,5,6,7,4,6] list_2 = [1,1,1,1,23,24,56,6,7,45,56] list_l = set(list_l) list_2 = set(list_2) list_3 = list_l.intersection(list_2) print(list_3)
#并集 union() 就是两个合并在一起,并且去掉重复的
##集合运算符 | list_1 | list_2 list_1 = [1,2,3,4,5,6,7,8,9,8] list_2 = [1,2,3,4,5,6,44,33,32,2,2,2] list_1 = set(list_1) list_2 = set(list_2) list = list_1.union(list_2) print(list)
####差集list_1.difference(list_2) 就是list_1有的list_2没有的 ##集合运算符 - list_1 - list_2
list_1 = [1,2,3,4,5,6,7,8] list_2 = [1,10,20,3,4,50] list_1 = set(list_1) list_2 = set(list_2) list = list_1.difference(list_2) print(list)
##子集issubset 父集issuperset 不是全部包含就还是返回False list_1 = set([1,3,5,7,9]) list_2 = set([2,4,6,8]) lsit_3 = set([2,4,6]) ##list_1是list_2的子集吗? print(list_1.issubset(list_2))###返回false ##list_1是list_2的父集吗? print(list_1.issuperset(list_2))###返回false ##list_1是list_2的子集吗? print(list_3.issubset(lsit_2))###True ##list_1是list_2的父集吗? print(lsit_2.issuperset(list_3))##True
###对称集合,在一项中,但不会同时出现在两者里面 print(list ^ list2)
##判断有没有交集,如果有就返回False,没有集返回True list_1.isdisjoint(list_2)
在列表中的常用操作
###添加 括号中是你要添加的内容 list_1.add(55)
##添加多项 update()
list_1.update([222,444,5,66])
##set的长度 len(list_1) ##使用remove()可以删除一项,如果不存在就报错 list_1.remove("5") ##使用discard()可以删除一项,如果不存在返回None,存在就删除 list_1.discard(888) ##测试x是否是s的成员 x in s #测试x是否不是s的成员 x not in s ##测试是否s中的每一个元素都在t中 s.issubset(t) s<=t #删除第一个并返回被删除的元素 print(list_1.pop())