# 字典 dict
"""
数据类型划分 : 可变数据类型 不可变数据类型
不可变数据类型: 元组 bool int str 又叫做(可哈希)
可变数据类型: 列表(list) 字典(dict) 又叫做 (不可哈希)
集合本身是不可变数据类型 但是他内部是可变数据类型
"""
#字典中的键 必须是不可变数类型
# 值 可以是任意的数据类型
# dict key 必须是不可变数据类型 可哈希 如果定义一个不可哈希数据类型 会报错
# value 任意数据类型。
#
# 字典(dict) 优点 :按照二分划的方式查询 查询速度快
# 存储大量的关系型数据
# 特点: 无序的,无序的就是没有索引 需要通过键值对的方式去查找
#字典 增 dic1["high"] = 185 二:setdefault() 2种
# dic1 = {"age":18,"name":"jin","sex":"name"}
# #增: #原来字典中有对应的键值 就会覆盖原来的键对应的值
# 没有就添加一组新的键值对
# dic1["high"] = 185
# dic1["age"] = 16
# print(dic1)
# # setdefault()有键值对 不作任何操作 没有才添加
# dic1.setdefault("weight",150)
# print(dic1)
# 删 pop() 二:popitem() 三:clear() del(少用) 3种
# print(dic1.pop("age")) # 有返回值 返回对应的键
# print(dic1.popitem()) # 有返回值 返回随机删除其中的一个键值对
# dic1.clear() #清空字典
# del 删除 少用
#改:1. dic1["name"] = "alex" 2. dic2.update(dic1)
# dic1["name"] = "alex" #根据键 重新给值赋值
#dic2.update(dic1) # 把dic2 的值全部覆盖合并到dic1中
# # 没有键值对的添加新的键值对 有键的把新的值覆盖就的值
#查:
# print(dicl.(keys)) #查询打印出字典中所有键 (列表的形式)
# print(dicl.(values)) #查询打印出字典中所有键的值 (列表的形式)
# print(dicl.(items)) #查询打印出字典中所有键和值 以列表的形式打印 以元组的形式显示键值对 (元组的形式)
# for i,v in dic1.items(): 分别接收字典中的键值对
#print(dic1("name")) #查找到的是字典键对应的值 只输出值 找不到报错
#print(dic1.get(name,"找不到返回的值")) #查找字典对应的值 找不到返回None