不可變數據類型: 元組、bool、int、str (也稱做 可哈希)python
可變數據類型: list、dict、set(集合,集合可變,內元素不可變) (也稱做 不可哈希) 函數
字典是python中唯一的的映射類型,採用鍵值對(key-value)的形式存儲數據。python對key進行哈希函數運算,根據計算的結果決定value的存儲地址,因此字典是無需存儲的,且key必須是可哈希的。spa
dict 優勢: 字典當中的元素是經過鍵來存取的,而不是經過偏移存取。二分查找去查詢,存儲大量的關係型數據。code
一、直接鍵值對增長,沒有相同k值時直接添加,k值已經存在,則v值覆蓋。blog
二、經過 setdefault(self,k,v=None)添加,k值沒有時,直接添加,k值已經存在,則不作任何改變,v值默認爲 Noneip
dic = {'age': 18, 'name': 'jin', 'sex': 'male'} dic['age'] = 76 dic.setdefault('qw') dic.setdefault('ty',45) {'qw': None, 'sex': 'male', 'ty': 45, 'name': 'jin', 'age': 76}
刪:
一、pop(self,k:_KT) 按鍵去刪除,有返回值,若是k值原本存在,返回k值對應的v值,若是k值不存在,默認返回None,能夠設置v值爲任何形式。get
二、popitem(self) 隨機刪除一個鍵值對,有返回值,元組形式出現,刪除的鍵值對it
三、clear 清空字典class
dic = {'age': 18, 'name': 'jin', 'sex': 'male', 'high': 175} print(dic.pop('age',)) print(dic.pop('ages',{'ssss':1})) print(dic.popitem()) dic.clear() 18 {'ssss': 1} ('name', 'jin') {}
改:date
一、直接覆蓋
二、update() dic_2.update(dic_1) 覆蓋添加
dic = {'age': 18, 'name': 'jin', 'sex': 'male', 'high': 175} dic1 = {'as': 'qyqy', 'oipi': 45, 'age' : 13} dic1.update(dic) print(dic1) {'as': 'qyqy', 'name': 'jin', 'high': 175, 'age': 18, 'sex': 'male', 'oipi': 45}
查:
一、直接根據k值查詢,若是k值沒有,會報錯
二、for 循環,總體查
三、get(k,None) dic_2 = dic_1.get ( k,v) 若是有k值,返回對應的v值,若是沒有對應的k值,默認返回 None ,能夠設定v值返回。
dic = {'age': 18, 'name': 'jin', 'sex': 'male'} print(dic.keys(),type(dic.keys())) print(dic.values(),type(dic.values())) print(dic.items(),type(dic.items())) dict_keys(['sex', 'name', 'age']) <class 'dict_keys'> dict_values(['male', 'jin', 18]) <class 'dict_values'> dict_items([('sex', 'male'), ('name', 'jin'), ('age', 18)]) <class 'dict_items'>