python 字典的魔法 day12
创建字典对象
dict
info ={'k1':'v1','k2':'v2'#键值对}
字典的value可以时任何值
info = { 'k1':18, 'k2':True, 'k3':[ 11,22,33,{'k1':'vv1','k2':'vv2'} ], 'k4':(11,22,33,44) } print(info)
字符,数字,元组可以作为key,列表,布尔值,字典不能作为key
info = { 1:'asd', 'k1':'asdf', (11,22,):'asdfg' } print(info)
字典无序
从字典中取值
info = { 'k1':18, 'k2':True, 'k3':[ 11,22,33,{'k1':(11,22,33),'k2':'vv2'} ], 'k4':(11,22,33,44) } v = info['k3'][3]['k1'][2] print(v)
删除一个元素
info = { 'k1':18, 'k2':True, 'k3':[ 11,22,33,{'k1':(11,22,33),'k2':'vv2'} ], 'k4':(11,22,33,44) } del info['k3'] print(info)
info = { 'k1':18, 'k2':True, 'k3':[ 11,22,33,{'k1':(11,22,33),'k2':'vv2'} ], 'k4':(11,22,33,44) } del info['k3'][3]['k1'] print(info)
默认for循环只有key
info = { 'k1':18, 'k2':True, 'k3':[ 11,22,33,{'k1':(11,22,33),'k2':'vv2'} ], 'k4':(11,22,33,44) } for item in info: print(item)
获取值
info = { 'k1':18, 'k2':True, 'k3':[ 11,22,33,{'k1':(11,22,33),'k2':'vv2'} ], 'k4':(11,22,33,44) } for item in info.values(): print(item)
获取键值对
info = { 'k1':18, 'k2':True, 'k3':[ 11,22,33,{'k1':(11,22,33),'k2':'vv2'} ], 'k4':(11,22,33,44) } for item in info.items(): print(item)
获取key和值
info = { 'k1':18, 'k2':True, 'k3':[ 11,22,33,{'k1':(11,22,33),'k2':'vv2'} ], 'k4':(11,22,33,44) } for k,v in info.items(): print(k,v)
根据序列生成字典,并指定统一的值
v = dict.fromkeys(['k1',123,'999'],123) print(v)
取字典值
dic = {'k1':'123'} v = dic['k1'] print(v)
#如取不存在的key直接报错
dic = {'k1':'123','k2':223} v = dic.get('k1111',111) print(v)
#如不存在key,返回逗号后面的值
删除一个元素并取出,或删除不了返回一个默认值
dic = {'k1':'123','k2':223} v = dic.pop('k1') print(dic,v)
dic = {'k1':'123','k2':223} v = dic.pop('k1111',455) print(dic,v)
设置值,如果存在,获取当前key对应的值
dic = {'k1':'123','k2':223} v = dic.setdefault('k111','3333') print(dic,v)
更新字典
dic = {'k1':'123','k2':223} dic.update({'k1':'3333','k3':444}) print(dic)
dic = {'k1':'123','k2':223} dic.update(k1 = 3333,k3 = 444) print(dic)