列表的不足python
容器型數據類型:dict學習
數據類型的分類(可變與不可變):code
字典:{}括起來,以鍵值對形式存儲的容器型數據類型。對象
dic = {'q':1,'w':2,"e":3,'r':4}
鍵必須是不可變的數據類型:int、str (bool,tuple幾乎不用)three
值能夠是任意數據類型,對象。get
字典3.5x版本之前(包括3.5)是無序的。it
字典3.6x會按照初次創建字典的順序排列,學術上不認爲是有序的。class
字典3.7x之後都是有序的。容器
字典的查詢速度很是快。遍歷
字典的缺點:以空間換時間。
# 方式一 dic = dict((('q',1),('w',2),('e',3))) # 方式二 dic = dict(one=1,two=2,three=3) # 方式三 dic = dict({'one':1,'two':2,'three':3}) #驗證字典的合法性 dic = {key:value}
字典的增刪改查(鍵值對,鍵要惟一)
增 兩種方式互補
dic = {'name':'jarvis','age':18} #方式一(直接增長,有這個鍵就覆蓋) dic['sex'] = '男' #方式二(有這個鍵不變,沒有就增長) dic.setdefault('hobby','球類運動')
刪
dic = {'name':'jarvis','age':18} #方式一(按照鍵刪除鍵值對,有返回值) dic.pop('age') #返回的是值 ret = dic.pop('hobby','沒有此鍵') #填入第二個參數時,有無第一個鍵值都不報錯,返回第二個鍵值 print(ret) #方式二(清空) dic.clear() print(dic) #方式三(按照鍵刪除鍵值對,沒有此鍵會報錯) del dic['age'] print(dic)
改
dic = {'name':'jarvis','age':18} dic['name'] = 'one' print(dic)
查
dic = {'name':'jarvis','age':18} #方式一(沒有此鍵會報錯,不推薦使用) print(dic['name']) #方式二(沒有此鍵不會報錯,能夠設置返回值) ll = dic.get('name','沒有此鍵') print(ll) #方式三(keys()values()items()) #能夠轉化成列表 print(list(dic.keys())) #遍歷 for key in dic.keys(): print(key) #拆包 for key,value in dic.items(): print(key,value)
練習題
dic = { 'name':'jarvis', 'age':44, 'wife':[{'name':'jarviswife','age':38}], 'children':{'girl_first':'one','girl_second':'two','girl_three':'three'} } #1.獲取jarvis的名字。 print(dic['name']) print(dic.get('name')) #2.獲取這個字典:{'name':'jarviswife','age':38}。 print(dic['wife']) print(dic['wife'][0]) #3.獲取jarvis妻子的名字。 print(dic['wife'][0]['name']) #4.獲取jarvis的第三個孩子名字。 print(dic['children']['girl_three'])