5.Python day05,dict字典
阿新 • • 發佈:2018-11-22
資料型別劃分:可變資料型別,不可變資料型別。
不可變資料型別:元祖,bool,int,str 可雜湊(Hash)
可變資料型別:list,dict,set 不可雜湊
dict 字典:
key 必須是不可變資料型別,可雜湊。
value 任意資料型別。
優點:二分查詢法查詢,儲存大量關係型資料。
特點:無序的。
dic = { 'name':['大猛','小孟'], 'pys9':[{'num':71,'age':18}, {'num':71,'age':18}], True:1, (1,2,3):'沒意義', 2:'二哥', }
dic = {'name':'許志柱','age':28,'gender':'男'}
增:
dic['high']=175#沒有的鍵值對,新增 dic['age'] = 18#已有的鍵,覆蓋原來的值。 setdefault()#有鍵值對,不做任何操作。沒有才新增。 dic.setdefault('weight') dic.setdefault('weight',150) dic.setdefault('name','許小志')
刪:
dic = {'name':'許志柱','age':28,'gender':'男'} pop()#按照鍵刪除 print(dic.pop('age'))#有返回值,返回被刪的值 print(dic.pop('love',None))#可設定返回值。 print(dic.popitem())#隨機刪除,返回一個元祖,刪除的鍵值。 dic.clear() #清空字典 del dic['name']#沒有返回值 del dic['name1']#如果沒有給定鍵,會報錯。所以刪除儘量用pop del dic#在記憶體裡刪除整個字典,
改:
dic = {'name':'許志柱','age':28,'gender':'男'} dic['age'] = 18 dic2 = {'name':'許小志','sal':5000} dic2.update(dic)#把dic更新到dic2,dic與dic2,都有的,就覆蓋。沒有的,就新增。 print(dic)#dic不變 print(dic2)#dic2更新了
查:
dic = {'name':'許志柱','age':28,'gender':'男'} print(dic.keys(),type(dic.keys()))#是特殊的字典鍵型別,但又列表的功能 print(dic.values(),type(dic.values())) print(dic.items(),type(dic.items()))#是元祖,鍵值 for i in dic: print(i) for i in dic: print(dic[i]) for i in dic.keys(): print(i) for i in dic.values(): print(i) a,b = 1,2 print(a,b) a = 1 b = 2 a,b = b,a print(a,b)#用一行程式碼互換。 a,b = [1,2] a,b = [1,2],[3,4] a,b = (1,2) print(a,b) dic = {'name':'許志柱','age':28,'gender':'男'} for k,v in dic.items(): print(k,v) v = dic['name'] print(v) v1 = dic['nameee']#沒有這個鍵,會報錯。 print(v1) print(dic.get('name1','沒有這個鍵'))#用鍵獲取值,可以存入沒有的返回值。預設為None print(dic.get('name'))
dict字典巢狀:
dic ={ 'name':['alex','wusir','taibai'], 'pys9':{ 'time':'1213', 'learn_money':19800, 'addr':'CBD', }, 'age':18 } dic['age'] = 58; dic['name'].append('日天') dic['name'][1] = dic['name'][1].upper() dic['pys9']['female'] = 6 print(dic)