7、python_dict(字典)

字典是python中唯一一个映射类型,它是以{}括起来的键值对组成.在dict中key是唯一的,在保存的时候,根据key来计算出一个内存地址,然后将key_value保存在这个地址中,这种算法称为hash算法,所以,在dict中存储的Key-value中的key是必须是可以Hash的,hash具有雪崩效应,是不可变的,采用哈希算法是能够准确的计算内存地址而规定的


已知可哈希(不可变)的数据类型:int、str、tuple、bool
    不可哈希(可以变)的数据类型:list、dict、set

  语法:{key1:value1,key2:value2....}
注意:key必须是不可变的(可以hash)的;value没有要求,可以是任何类型的数据

  dict = {'jay': '周杰伦', 'jj': '林俊杰','eason':'陈奕迅'}
  print(dict) #{'jay': '周杰伦', 'jj': '林俊杰', 'eason': '陈奕迅'}

字典的增删改查

dic = {"昆凌":"杰伦老婆"}
dic['章子怡'] = "王峰老婆"               #新增
print(dic) #{'昆凌': '杰伦老婆', '章子怡': '王峰老婆'}
dic['章子怡'] = "威廉姆特单的老婆"        #如果key重复了,会替换掉原来的key
print(dic) #{'昆凌': '杰伦老婆', '章子怡': '威廉姆特单的老婆'}
dic.setdefault("马蓉","王宝强的前妻")
print(dic) #-{'昆凌': '杰伦老婆', '章子怡': '威廉姆特单的老婆', '马蓉': '王宝强的前妻'}
dic.setdefault("马蓉","松泽的现任?")    #如果字典中包含了这个key,setdefault将不起作用
print(dic) #{'昆凌': '杰伦老婆', '章子怡': '威廉姆特单的老婆', '马蓉': '王宝强的前妻'}
dic = {'jay': '周杰伦', 'jj': '林俊杰','eason':'陈奕迅'}
dic.pop("jay")         #删除周杰伦
print(dic) #{'jay': '周杰伦', 'jj': '林俊杰', 'eason': '陈奕迅'}

dic = {'jay': '周杰伦', 'jj': '林俊杰','eason':'陈奕迅'}
del dic["jay"]         #删除周杰伦
print(dic) #{'jj': '林俊杰', 'eason': '陈奕迅'}
dic = {'jay': '周杰伦', 'jj': '林俊杰','eason':'陈奕迅'}
dic1 = {"jay":"周洁轮","jj":"林俊杰","esaon":"成一询","vava":"王承泽"}
dic.update(dic1)
print(dic) #{'jay': '周洁轮', 'jj': '林俊杰', 'eason': '陈奕迅', 'esaon': '成一询', 'vava': '王承泽'}
  • 查(一般是通过key来查找具体的数据)
dic = {'jay': '周杰伦', 'jj': '林俊杰','eason':'陈奕迅'}
print(dic["jay"])        #周杰伦
print(dic.get("eason"))  #陈奕迅
print(dic.get("剑圣"))   #None
dic.setdefault("及时雨","宋江")
print(dic) #{'jay': '周杰伦', 'jj': '林俊杰', 'eason': '陈奕迅', '及时雨': '宋江'}

 

  • 字典的常用操作
dic = {"及时雨":"宋江","小李广":"华荣","黑旋风":"李逵"}
print(dic.keys())             #dict_keys(['及时雨', '小李广', '黑旋风'])

for key in dic.keys():
print(key)                    #及时雨\小李广\黑旋风

 

print(dic.items())            #dict_items([('及时雨', '宋江'), ('小李广', '华荣'), ('黑旋风', '李逵')]) 拿到的是键值对
print(dic.items())
for item in dic.items():
print(item[0])               #及时雨\小李广\黑旋风 拿到的是key
print(item[1])               #宋江\华荣\李逵 拿到的是value

 

上一篇:(Python)字符串统计排序


下一篇:leetcode1394.找出数组中的幸运数