⑩python字典的使用

info = {
    'p1101':["peng","hao"],
    'p1102':"wu",
    'p1103':"tan",
    'p1104':"zhou",
}
print(info)
print(info['p1101'])   #查找,无则报错KeyError
info["p1101"] = "彭"   #修改
info["p1105"] = "ming" #有则修改,无则增加
del info["p1103"]      #删除
info.pop("p1104")      #删除
info.popitem()         #随机删除其中一个
print(info)

#info["p1105"]          #查找,无则报错KeyError
print(info.get("p1105"))#查找,无则不报错
print('p1104'in info)   #info.has_key("1104") in py2.X'''判断该key是否在info里

print(info.values())    #打印所有的值
#结果:dict_values(['wu', 'peng', 'tan', 'zhou'])
print(info.keys())      #打印所有的key
#结果:dict_keys(['p1102', 'p1101', 'p1104', 'p1103'])
#info.setdefault("p1105","ran") #创建一个新的值
#info.setdefault("p1101","ran")  #先去字典中取,能取到直接取
#print(info)
info = {
    'p1101':["peng","hao"],
    'p1102':"wu",
    'p1103':"tan",
    'p1104':"zhou",
}
person = {'p1101':"chen",
          'p1106':"fujun",
          'p1107':"xiuying"
          }
info.update(person) #合并两个字典
print(info)
#结果:{'p1101': 'chen', 'p1106': 'fujun', 'p1104': 'zhou', 'p1102': 'wu', 'p1103': 'tan', 'p1107': 'xiuying'}
print(info.items()) #把一个字典转成一个列表
#结果:dict_items([('p1101', 'chen'), ('p1106', 'fujun'), ('p1104', 'zhou'), ('p1102', 'wu'), ('p1103', 'tan'), ('p1107', 'xiuying')])
ceshi = dict.fromkeys([6,7,8],[1,{"name":"peng"}])
print(ceshi)
#结果:{8: [1, {'name': 'peng'}], 6: [1, {'name': 'peng'}], 7: [1, {'name': 'peng'}]}
ceshi[7][1]['name']="li qiang" #相当浅copy:此时,修改一个值,相当于全改了
print(ceshi)
#结果:{8: [1, {'name': 'li qiang'}], 6: [1, {'name': 'li qiang'}], 7: [1, {'name': 'li qiang'}]}

for i in info:          #直接索引字典,然后循环,推荐使用这种方式
    print(i,info[i])

for k,v in info.items():#把字典转成列表,然后循环
    print(k,v)