#!/user/bin/env python
# -*- coding:utf-8 -*-
# 一。
# 1.可变类型:字典、列表 不可变类型:数字、字符串、元祖
# 2.集合是无序的。由不可变类型组成。不同元素组成
# 3.访问顺序:
# (1)直接访问的:数字
# (2)顺序访问的:字符串,列表,元祖
# (3)映射访问的:字典
# 4.存放元素:容器类型的:字典、列表、元祖
# 原子:数字 字符串
# 集合格式:{元素1,元素2,元素。。。}
# 二:集合的魔法
# 1.集合的英文表示set.例
# set1={1,2,3,4}
# print(type(set1)) #补充,type显示数据类型
# 2.和列表类型的数据转换:
# li=["12","32",4,5,6,7]
# set1=set(li)
# print(set1)#通过显示结果可以看出集合是无序的。
# 3.集合的几种方法:
# 1.add 增加 .clear 清除 .pop随机删除 ,remove指定删除
# set1 = {1, 2, 3, 4, 5}
# set1.add("678")
# print(set1)
# set2=set1.copy()
# set1.clear()
# print(set1)
# set2.pop()
# print(set2)
# set2.remove(3)
# print(set2)
# 2. set.difference()差集 符号表达式是 - 谁在前就是谁和后面的元素相比,找出不同元素
# set1 = {1, 2, 3, 4, 5}
# set2 = {3, 4, 5, 6, 7}
# # cj=set1 -set2
# cj=set2.difference(set1)
# print(cj)
# 3. set.intersection()交集,符号表达& 找出两个集合相同的元素
# set1 = {1, 2, 3, 4, 5}
# set2 = {3, 4, 5, 6, 7}
# # bj=set1.intersection(set2)
# bj = set1 & set2
# print(bj)
# 4. set.symmetric_difference()交叉补集 把两个集合不同的元素集合在一起符号^
# set1 = {1, 2, 3, 4, 5}
# set2 = {3, 4, 5, 6, 7}
# jcbj=set1.symmetric_difference(set2)
# jcbj=set1^set2
# print(jcbj)
# 5.并集 set.union() 符号| 把两个集合合并在一起,并去掉重复的元素
# set1 = {1, 2, 3, 4, 5}
# set2 = {3, 4, 5, 6, 7}
# # v = set1 | set2
# v=set1.union(set2)
# print(v)
# 6. set.issubset() 判断某个集合是否是另个集合的子集 是的话返回真
# set1 = {1, 2, 3, 4, 5}
# set2 = {3, 4}
# # v=set2.issubset(set1)
# v=set2 <set1 #判断set2是否是set1的子集是返回真,表示符号<
# print(v)
# 7.set.issuperset() 判断某个集合是否是某个父集
# set1 = {1, 2, 3, 4, 5}
# set2 = {3, 4}
# # v=set1.issuperset(set2)
# v = set1 > set2
# print(v)
# 8. set.difference_update()去掉两个比较集合里的相同元素,把不同的元素更新到使用该方法的集合里。
# set1 = {1, 2, 3, 4, 5}#把其中的3,4,5两个集合里都有的元素去掉剩下的更新到set1里
# set2 = {3, 4, 5, 6, 7}
# set1.difference_update(set2)
# print(set1)
# 9. set.update()可以增加多个元素,add只能增加1个元素。 set.discard()删除一个元素不存在的时候不会报错,而remove 会报错
# set1 = {1, 2, 3, 4, 5, 6, 7}
# # set1.remove(8) #如果不存在这个元素用remove删除的时候会包keyerror错误,而discard则不会。
# set1.discard(8) #不存在不会报错。
# set1.discard(7)
# print(set1)
# 10.set.intersection_update()把两个集合的交集更新到使用该方法的集合里
# set1 = {1, 2, 3, 4, 5} #把其中的3,4,5两个集合里都有的元素去掉剩下的更新到set1里
# set2 = {3, 4, 5, 6, 7}
# set1.intersection_update(set2)
# print(set1)
# 11.set.symmetric_difference_update() 把交叉补集更新到使用该方法的集合里
# set1 = {1, 2, 3, 4, 5}
# set2 = {3, 4, 5, 6, 7}
# set1.symmetric_difference_update(set2)