字典操作
字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。
语法:
info = { 'stu1':"saber", 'stu2':"archer", 'stu3':"rider", }
字典的特性:
dict是无序的
key必须是唯一的,天生去重
增加:
print(info['stu1']) info['stu4'] = "lancer" print(info) {'stu1': 'saber', 'stu2': 'archer', 'stu3': 'rider', 'stu4': 'lancer'}
修改:
info['stu1'] = "剑士" print(info) {'stu1': '剑士', 'stu2': 'archer', 'stu3': 'rider', 'stu4': 'lancer'}
删除:
info {'stu1': '剑士', 'stu2': 'archer', 'stu3': 'rider', 'stu4': 'lancer'} del info['stu4'] #标准删除 {'stu1': '剑士', 'stu2': 'archer', 'stu3': 'rider'} info.pop('stu3') #第二种删除方式 {'stu1': '剑士', 'stu2': 'archer', 'stu4': 'lancer'} info.popitem() #随机删除 {'stu1': '剑士', 'stu2': 'archer', 'stu3': 'rider'}
查找:
info {'stu1': '剑士', 'stu2': 'archer', 'stu3': 'rider', 'stu4': 'lancer'} print(info['stu5']) #标准查找,如果有key存在会打印,如果key不存在会报错 >>KeyError: 'stu5' print(info.get("stu5")) #第二种查找,如果key存在就会打印,如果key不存在会返回NONE >>None print('stu5' in info) #判断key是否存在,如果存在打印True,如果不存在打印False >>False
其他
info {'stu1': '剑士', 'stu2': 'archer', 'stu3': 'rider', 'stu4': 'lancer'} #setdefault info.setdefault('stu5',"caster") #查找 key stu5,如果有就打印出来,如果没有就创建一个stu5 print(info) {'stu1': '剑士', 'stu2': 'archer', 'stu3': 'rider', 'stu4': 'lancer', 'stu5': 'caster'} #values print(info.values()) #打印所有的values dict_values(['剑士', 'archer', 'rider', 'lancer']) #keys print(info.keys()) #打印所有的key dict_keys(['stu1', 'stu2', 'stu3', 'stu4']) #update update_info = {'stu1':"saber", '123':"abc", '456':"def", } #更新字典,当新字典出现新的key时,会被更新到旧字典,当有旧字典的key跟新字典的key相同时,旧字典key的内容会被覆盖 info.update(update_info) print(info) {'stu1': 'saber', 'stu2': 'archer', 'stu3': 'rider', 'stu4': 'lancer', '123': 'abc', '456': 'def'} #items print(info.items()) #把字典转换成列表 dict_items([('stu1', '剑士'), ('stu2', 'archer'), ('stu3', 'rider'), ('stu4', 'lancer')])
多级字典嵌套和操作
catalog = { "北京": {"海淀":["国家图书馆","中关村"]}, "辽宁": {"沈阳":["五里河体育场","沈阳故宫"]}, } catalog["北京"]["海淀"][1] = "鼎好大厦" #修改第三层字典内容 {'北京': {'海淀': ['国家图书馆', '鼎好大厦']}, '辽宁': {'沈阳': ['五里河体育场', '沈阳故宫']}}
字典的循环
#方法1 for i in info: print(i,info[i]) #同时打印字典的key和value #方法2 for k,v in info.items(): #先把字典转换成列表再打印,大数据量时不要使用 print(k,v)