'''
数据类型的划分
不可变数据 : 元祖 布尔值 int str 可哈希
可变数据类型: list dict set 不可哈希
dict key 必须是不可变数据累心,可哈希
value 任意数据类型
dict的优点 二分查询
存储大量的关系型数据
特点 无序的
dic1 = {
'name' : ['tom', 'cat'],
'py9' : [{'num': 17, 'avg_age': 18},
{'num': 71, 'avg_age': 18},
{'num': 33, 'avg_age': 33}
],
True:1,
(1, 2, 3): 'adfjksdj',
2:'xxpp'
}
print(type(dic1))
'''
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male'}
# # 增 setdefault
# dic1['age'] = 22
# print(dic1)
# # 当key存在时 修改value
#
# dic1['mm'] = 'ffff'
# print(dic1)
# # 当key不存在时 新加一个键值对
#
# dic1.setdefault('age', 22)
# # 当key存在时 不做任何操作
#
# dic1.setdefault('mm', 'fff')
# # 当key不存在时 添加键值对
# print(dic1)
# 删 pop del删除 clear清空
# print(dic1.pop('age', 'ysc'))
# print(dic1.pop('age', 'ysc'))
# print(dic1)
# pop有输出 按key去删除 设置返回值 否则没有的话会报错
# print(dic1)
# print(dic1.popitem())
# popitem 随机删除(新版python 从最后开始删)
# del dic1
# # print(dic1)
# dic1.clear()
# print(dic1)
# 改 update
# dic2 = {'age': 22, 'name': 'yin', 'penpen': 'tutu'}
# dic2.update(dic1)
# print(dic1)
# print(dic2)
# 查
# print(dic1.keys(), type(dic1.keys()))
# print(dic1.values(), type(dic1.values()))
# print(dic1.items(), type(dic1.items()))
# for i in dic1:
# print(i)
# for i in dic1.keys():
# print(i)
# for i in dic1.values():
# print(i)
# for i in dic1.items():
# print(i,type(i))
# for k,v in dic1.items():
# print(k,v)
# get查找的时候不会报错
print(dic1['age']) # age1不存在会报错
print(dic1.get('age', 'bcz'))