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

1.去重,把列表变为集合就去重了。

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

#创建两个集合
list_1 = set([1,3,4,5,6,6,5,7,9])
list_2 = set([2,4,5,6,8,10])
print(list_1,list_2)
#输出:{1, 3, 4, 5, 6, 7, 9} {2, 4, 5, 6, 8, 10}   #列表变为集合自动去重

#交集
print(list_1.intersection(list_2))
#输出:{4, 5, 6}

#并集
print(list_1.union(list_2))
#输出:{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

#差集
print(list_1.difference(list_2))                   #我有的,你没有的
#输出:{1, 3, 9, 7}
print(list_2.difference(list_1))
#输出:{8, 2, 10}

#子集
list_3 = set([1,3,5])
print(list_3.issubset(list_1))                  #如果list_3是list_1的子集,返回Ture,否则返回False
#输出:Ture
print(list_1.issuperset(list_3))                #父集
#输出:Ture


#对称差集
print(list_1.symmetric_difference(list_2))       #去掉两个集合相交的
#输出:{1, 2, 3, 7, 8, 9, 10}

print(list_1.isdisjoint(list_2))                  #如果两个集合有交集则返回False,没有交集则返回Ture


#关系测试另一种方式-------------------
#交集
print(list_1 & list_2)

#并集
print(list_1 | list_2)

#差集
print(list_1 - list_2)

#对称差集
print(list_1 ^ list_2)

#集合基本操作---------------------------
#增加
list_1.add(111)                 #添加一项
list_1.update([222,333,444])    #添加多项
print(list_1)


#删除
list_1.remove(111)              #删除一值,不存在报错
list_1.pop()                    #任意删除一个
list_1.discard(333)             #删除一个值,不存在不会报错
print(list_1)

# print(len(list_1))            #查看集合长度
# print(222 in list_1)          #测试数据是否在集合中