1. 程式人生 > >5.Python day05,dict字典

5.Python day05,dict字典

資料型別劃分:可變資料型別,不可變資料型別。
  不可變資料型別:元祖,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)