標籤:資料 傳回值 hid tde 資料結構類型 映射 ldb splay 對象
一:字典(dic)
字典是python中唯一的映射類型,採用索引值對(key-value)的形式儲存資料。python對key進行雜湊函數運算,根據計算的結果決定value的儲存地址,所以字典是無序儲存的,且key必須是可雜湊的。可雜湊表示key必須是不可變類型,如:數字、字串、元組。
字典(dictionary)是除列表意外python之中最靈活的內建資料結構類型。列表是有序的對象結合,字典是無序的對象集合。兩者之間的區別在於:字典當中的元素是通過鍵來存取的,而不是通過位移存取。
1.增
dic = {"name":"jin","age":18,"sex":"male"}# dic[‘key‘] = ‘value‘ key存在則改變,key不存在則添加dic[‘name‘] = ‘qwe‘print(dic)dic[‘hobby‘] = ‘旅遊‘print(dic)# 輸出結果:{‘name‘: ‘qwe‘, ‘age‘: 18, ‘sex‘: ‘male‘, ‘key‘: ‘value‘}# 輸出結果:{‘name‘: ‘jin‘, ‘age‘: 18, ‘sex‘: ‘male‘, ‘hobby‘: ‘旅遊‘}# setdefault key存在不變,不存在則添加dic.setdefault(‘age‘,‘15‘)print(dic)dic.setdefault(‘hobby‘,‘旅遊‘)print(dic)# 輸出結果:# {‘name‘: ‘jin‘, ‘age‘: 18, ‘sex‘: ‘male‘}# {‘name‘: ‘jin‘, ‘age‘: 18, ‘sex‘: ‘male‘, ‘hobby‘: ‘旅遊‘}View Code
2.刪
dic = {"name":"jin","age":18,"sex":"male"}# pop 按key刪除,有傳回值 如果沒有key,可設定傳回值(不設定傳回值報錯)dic.pop(‘name‘)print(dic)# 輸出結果:# {‘age‘: 18, ‘sex‘: ‘male‘}ret = dic.pop(‘hobby‘,‘沒有此鍵‘)print(ret)print(dic)# 輸出結果:# 沒有此鍵# {‘name‘: ‘jin‘, ‘age‘: 18, ‘sex‘: ‘male‘}# clear 清空字典dic.clear()print(dic)# 輸出結果:{}del 刪除字典,刪除索引值對del dic 刪除字典del dic[‘name‘]print(dic)# 輸出結果:# {‘age‘: 18, ‘sex‘: ‘male‘}popitem 隨機刪除ret = dic.popitem()print(ret)print(dic)# 輸出結果:# (‘sex‘, ‘male‘)# {‘name‘: ‘jin‘, ‘age‘: 18}View Code
3.改
dic = {"name":"jin","age":18,"sex":"male"}dic2 = {"name":"alex","weight":75}# dic[‘key‘] = ‘value‘ 有 key 就覆蓋,沒有就添加# update 把dic2中的 索引值對 覆蓋添加 到dic中,dic 不變dic.update(dic2)print(dic)# 輸出結果:# {‘name‘: ‘alex‘, ‘age‘: 18, ‘sex‘: ‘male‘, ‘weight‘: 75}View Code
4.查
dic = {"name":"jin","age":18,"sex":"male"}print(dic[‘name‘]) #通過 key 直接查 value 沒有 key 報錯print(dic[‘age‘])print(dic[‘name‘],type(dic[‘name‘]))print(dic[‘age‘],type(dic[‘age‘]))# 輸出結果:# jin <class ‘str‘># 18 <class ‘int‘># get 通過 key 直接查 value 沒有 key 時,可設定傳回值print(dic.get(‘name‘))print(dic.get(‘name1‘))print(dic.get(‘name1‘,‘沒有此鍵對‘))# 輸出結果:# jin# None# 沒有此鍵對View Code
5.字典的其他方法
dic = {"name":"jin","age":18,"sex":"male"}keys = dic.keys()print(keys,type(keys))# 輸出結果:# dict_keys([‘name‘, ‘age‘, ‘sex‘]) <class ‘dict_keys‘>values = dic.values()print(values)# 輸出結果:# dict_values([‘jin‘, 18, ‘male‘])items = dic.items()print(items)# 輸出結果:# dict_items([(‘name‘, ‘jin‘), (‘age‘, 18), (‘sex‘, ‘male‘)])for k in dic: print(k)‘‘‘輸出結果:nameagesex‘‘‘for v in dic: print(v)‘‘‘# 輸出結果:nameagesex‘‘‘for k,v in dic.items(): print(k,v)‘‘‘# 輸出結果:name jinage 18sex male‘‘‘for k in dic: print(k,dic[k])‘‘‘# 輸出結果:name jinage 18sex male‘‘‘View Code
6,字典的嵌套
dic = { ‘name‘: "金鑫", ‘name_list‘:[1, 2, 3, ‘李傑‘], 1: { ‘python10‘:[‘小黑‘, ‘萌哥‘], ‘老男孩‘: {‘name‘:‘oldboy‘, ‘age‘:56} }}#1,[1,2,3,‘李傑‘]追加‘wusir‘dic[‘name_list‘].append(‘wusir‘)print(dic)#2, [‘小黑‘,‘萌哥‘] 小黑 萌哥中間 插入一個花哥dic[1][‘python10‘].insert(1,‘花哥‘)print(dic)#3, {‘name‘:‘oldboy‘,‘age‘:56} 添加一個索引值對,hobby:男人dic[1][‘老男孩‘][‘hobby‘] = ‘男人‘print(dic)dic[1][‘老男孩‘].setdefault(‘hobby‘,‘男人‘)print(dic)View Code
Python資料類型之dic