Python中的字典
阿新 • • 發佈:2018-09-15
pytho 返回 -s del 返回值 add code lis pop
Python內置了字典:dict,全稱dictionary,使用鍵-值(key-value)存儲,具有極快的查找速度。
定義一個字典:
dic = {‘name‘:‘jack‘,‘age‘:18,‘weight‘:76,‘height‘:175}
其中 ‘name‘,‘age‘,‘weight‘,‘height‘是字典中的key,
key在字典中是唯一的,其數據類型為不可變的對象,如:字符串,整數等,list是可變的對象,就不能做為key來使用
dict和list比較:
dict: 查找和插入的速度極快,不會隨著key-value的增加而變慢;但是占用的資源比較多,dict是無序的
list:查找和插入的速度慢,會隨著元素的增加時間變長,但是占用的資源較少,list是有序的
dict的常用方法:
查找:字典的查找通過key來查找,
value = dic[‘name‘]
print(value)
如果key不存在,則會報錯 KeyError,可以通過 get()方法來獲取,並指定自定義的返回值
value = dic.get(‘name‘,‘沒有這個鍵‘) print(value)
上面的代碼,使用get()方法,來獲取 ‘name‘對應的value 如果‘name‘存在,則返回對應的value,如果 ‘name‘ 不存在,則返回 ‘沒有這個鍵‘,如果第二個參數不指定,默認返回 None
增加內容:
dic[‘adress‘] = ‘beijing‘ # 通過 dict[key] = value 的方式來增加元素。註意:如果key存在,則會覆蓋對應的valueprint(dic)
還可以通過setdefault() 方法來增加內容
dic.setdefault(‘house_number‘,888) print(dic)
使用setdefault() 方法,如果只添加key,不給第二個參數賦值,默認為None
dic.setdefault(‘house‘) print(dic)
刪除內容 pop() 方法
dic_pop = dic.pop(‘adre‘,‘沒有此鍵‘) print(dic_pop) print(dic)
上面的代碼:刪除指定的key-value,並返回對應的value。如果指定的key不存在, 返回自定義內容,但,如果key不存在,第二個參數沒有填寫。則會報錯
popitem()方法
print(dic.popitem()) # 隨機刪除一對key-value對兒,並返回刪除的key-value 以元組的形式返回
del 方法 無返回值
del dic[‘name‘] print(dic)
clear()方法 清空字典
dic.clear() print(dic)
修改字典內容,可以通過修改key對應的值來操作
dic = {‘name‘:‘jack‘,‘age‘:18,‘weight‘:76,‘height‘:175} dic[‘name‘] = ‘tom‘ print(dic)
update() 方法
dic_1 = {‘name‘:‘jack‘,‘age‘:18} dic_2 = {‘name‘:‘tom‘,‘address‘:‘beijing‘,‘age‘:19,‘height‘:178} dic_1.update(dic_2) print(dic_1)
以上代碼,將dic_2 的內容更新到 dic_1中去
字典循環操作
dic = {‘name‘:‘jack‘,‘age‘:18,‘weight‘:76,‘height‘:175} for k in dic: print(k) # 默認打印字典的key for k in dic.keys(): print(k) # 打印字典的key for v in dic.values(): print(v) # 打印字典中的value for k,v in dic.items(): print(‘k = %s, v = %s‘ %(k,v)) # 打印key 和 value
其中 key() 方法,valuses()方法,以及 items() 方法,返回的數據類型可以當成一個list來使用,但是返回的類型如下:
print(type(dic.keys())) # <class ‘dict_keys‘> print(type(dic.values())) # <class ‘dict_values‘> print(type(dic.items())) # <class ‘dict_items‘>
Python中的字典