Python資料類型之dic

來源:互聯網
上載者:User

標籤:資料   傳回值   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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.