# ###字典的相关函数 (增删改查)
# (1) 增
dictvar = {}
dictvar['top'] = "凯"
dictvar['middle'] = "妲己"
dictvar["bottom"] = "鲁班七号"
dictvar["jungle"] = "刘备"
dictvar["support"] = "刘邦"
print(dictvar)
#fromkeys() 使用一组键和默认值创建字典
listvar = ["a","b"]
dic = {}.fromkeys(listvar,None)
print(dic)
# 不推荐使用fromkeys
'''
dic = {}.fromkeys(listvar,[])
dic['a'].append(55)
print(dic['b'])
'''
# (2)删除
#pop() 通过键去删除键值对 (若没有该键可设置默认值,预防报错)
dictvar = {'top': '凯', 'middle': '妲己', 'bottom': '鲁班七号', 'jungle': '刘备', 'support': '刘邦'}
dictvar.pop("middle")
print(dictvar)
# dictvar.pop("middle123")
dictvar.pop("middle123","该键不存在")
print(dictvar)
#popitem() 删除最后一个键值对 3.6版本
dictvar = {'top': '凯', 'middle': '妲己', 'bottom': '鲁班七号', 'jungle': '刘备', 'support': '刘邦'}
dictvar.popitem()
print(dictvar)
#clear() 清空字典
dictvar.clear()
print(dictvar)
# (3) 该
#update() 批量更新(有该键就更新,没该键就添加)
dic = { 'jungle': '刘备', 'support': '刘邦'}
# dic.update({'top':"花木兰",'middle':"武则天"})
# 写法一 (推荐)
dic.update( {'top':"花木兰",'middle':"武则天","support":"蔡文姬"} )
print(dic)
# 写法二
dic.update(abc = "123",bbb = 456,ccc=999)
print(dic)
# (4) 查
#get() 通过键获取值(若没有该键可设置默认值,预防报错)
dictvar = {'top': '凯', 'middle': '妲己', 'bottom': '鲁班七号', 'jungle': '刘备', 'support': '刘邦'}
# dictvar['top123'] error
res = dictvar.get("top123")
# 如果没有该键 , 默认返回None , 如果指定默认值, 则返回该默认值
res = dictvar.get("top123","对不起,没有该键")
print(res)
# 重点记忆:
#keys() 将字典的键组成新的可迭代对象
dictvar = {'top': '凯', 'middle': '妲己', 'bottom': '鲁班七号', 'jungle': '刘备', 'support': '刘邦'}
for i in dictvar:
print(i)
# 能够遍历就证明具有可迭代性
res = dictvar.keys()
print(res)
for i in res:
print(i)
#values() 将字典中的值组成新的可迭代对象
res = dictvar.values()
print(res)
for i in res:
print(i)
#items() 将字典的键值对凑成一个个元组,组成新的可迭代对象
res = dictvar.items()
print(res)
for i in res:
print(i)
for a,b in res:
print(a,b)