集合操作

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

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

  .关系测试,测试两组数据之前的交集,差集,并集等关系

常用操作

###去重
#首先创建一个列表
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())