# # 散列类型,集合、字典、逻辑运算符
# # 集合,增,删,改,查 ,特殊(集合三大特性,唯一性,无序性,确定性)
# a = {}
# print(type(a)) # <class 'dict'> 里面没有值时就是字典
# a = {1,2} # 用{}必须里面加值,或者用set(),都代表是集合
# print(type(a)) # <class 'set'> 里面有值时就是集合
# # a = {1,1,2,3,4,5,6,6} # 唯一性,用的最多主要是去重复的内容
# print(a) # {1, 2, 3, 4, 5, 6} 将集合重复的内容去掉,唯一性
# a = {'hello',1,2,3,3,4,5,7} # 无序性
# print(a) #{1, 2, 3, 4, 5, 7, 'hello'} 将集合的内容重复去掉,且无序
# a = {[1,2,3,4,5],1,2,3,4,6} # 确定性,集合无法用索引取值,必须先转成列表
# print(a) # 直接报错,因为里面不能有可变类型的数据,只能是确定性的数据
# # 运算,交(&),并(|),差(-)
# a = {2,3,4,5,6,7}
# b = {4,5,6,7,6,7,8}
# print(a & b) # {4, 5, 6, 7} 找出相同的数
# print(a | b) # {2, 3, 4, 5, 6, 7,8} 减掉相同的数
# print(a - b) # {2, 3} 只保留对方没有的单独的数
# print(b - a) # {8} 只保留对方没有的单独的数
# # 增加元素到集合add
# a = {2,3,4,5,6,7}
# a.add('f') # add专用到集合,增加到集合的后面
# print(a) # {2, 3, 4, 5, 6, 7, 'f'}
# # 删除pop\remove
# a = {'he',2,3,4,5,6,7,8,9} # pop还有个remove,也是删除
# print(a.pop()) # pop专用到集合,因为集合是无序的,所以是随机删除
# print(a) # {3, 4, 5, 6, 7, 8, 9, 'he'}无法指定删除某个元素
# # 修改update
# a = {'he',2,3,4,5,6,7,8,9}
# a.update(['hello']) # 类似增加
# print(a) # {2, 3, 4, 5, 6, 7, 8, 9, 'he', 'hello'}
# # 查isdisjoint
# x = {'app','did','cod'}
# y = {'app','dde','dre'}
# print(x.isdisjoint(y)) # False 有交集相同返回False,否则就True
# # 查看该对象所包含的方法名dir()
# a = [1,2,3,4,5]
# print(dir(a)) # 就是查看列表中包含了哪些操作方法
# # 自动排序
# a = [1,2,53,44,35,78]
# a.sort() # 按大小排序
# print(a) #[1, 2, 35, 44, 53, 78]
# a.sort(reverse=True) # 加了这个后变成反序排列
# print(a) # [78, 53, 44, 35, 2, 1]
# # 字典,定义,增,删,改,查
# # 定义,{},dict()共两种方式
# a = {'yqbi':'value1','age':18,'sex':'man'}
# '''
# 'age'----key(键)
# 18 ------value(值)
# : -------对
# '''
# # 增,通过setdefault来查的,都是查键值有则查,无则增加
# print(a.setdefault('age')) # 18
# print(a) # {'yqbi': 'value1', 'age': 18, 'sex': 'man'}
# print(a.setdefault('18')) # None,因为查的是值,所以无法查到,并新增一组
# print(a) # {'yqbi': 'value1', 'age': 18, 'sex': 'man', '18': None}
# # 删,clear,pop,popitem,
# a = {'yqbi':'value1','age':18,'sex':'man'}
# print(a.clear()) # None
# print(a.pop('age')) # 18 一定要传入指定的K值,才能删除键值对
# print(a) # {'yqbi': 'value1', 'sex': 'man'}
# a.popitem() # 基本是删除字典里最后一组键值队
# print(a) # {'yqbi': 'value1', 'age': 18},不用指定元素,随机删除
# # 改,有则改,无则增,原始有的K值就可以直接改,否则就直接增加
# a = {'yqbi':'value1','age':18,'sex':'man'}
# a.update({'age': 'dc'})
# print(a) # {'yqbi': 'value1', 'age': 'dc', 'sex': 'man'}
# # 查,get,keys,values,items 查比较重要,常用的多
# a = {'yqbi':'value1','age':18}
# print(a.get('age')) # 18 通过K值查到键值
# print(a.get('age1','hoho')) # hoho 当不到相对应K值时,直接传自己带的K值,不会报错
# print(a.keys()) # dict_keys(['yqbi', 'age']) 查看所有K值
# print(list(a.keys())) # ['yqbi', 'age'] 转换成列表
# print(list(a.values())) # ['value1', 18] 查看所有键值,并转成列表
# print(a.items()) # dict_items([('yqbi', 'value1'), ('age', 18)])
# print(list(a.items())) # [('yqbi', 'value1'), ('age', 18)] 将字典键值对转换成列表元组查看
# # 除了列表可以索引,其它的集合,字典都是无序的,无法索引