11個Python3字典內(nèi)置方法大全與示例匯總
概述
在絕大部分的開發(fā)語言中與實際開發(fā)過程中,Dictionary扮演著舉足輕重的角色。從我們的數(shù)據(jù)模型到服務(wù)器返回的參數(shù)到數(shù)據(jù)庫的應(yīng)用等等,Dictionary的身影無處不在。
在Python中,Dictionary是一種可變的容器類型。所謂容器類型,就是我們放置數(shù)據(jù)的地方。不同于List的有序、操作時對數(shù)據(jù)類型統(tǒng)一性的要求較嚴(yán)格,Dictionary是一種可變的、不限存儲對象、無序的數(shù)據(jù)模型。
字典有著類似列表的高靈活度的特點,而與列表通過偏移索引的存取元素的方式不同,字典是通過無序的鍵來存取鍵值對的,即字典是任意對象的無需集合,可在原處增加或減少,且支持任意深度的嵌套(即可以包含諸如列表,其他的字典等),下面就介紹了Python提供的11個字典內(nèi)置方法的基本概述及簡單示例。
方法 | 描述 |
---|---|
clear | 清除字典中所有鍵值對 |
copy | 對字典進(jìn)行淺拷貝,如需詳細(xì)了解可以參考上上節(jié)可變對象的淺拷貝和深拷貝詳解《Python列表賦值,復(fù)制,深拷貝以及5種淺拷貝詳解》 |
fromkeys | fromkeys(*args, **kwargs) 創(chuàng)建一個新字典,以序列的中元素做字典的鍵,value 為字典所有鍵對應(yīng)的初始值 |
get | get(self, k, d=None) 獲取指定鍵k對應(yīng)的值,如果該鍵不存在則返回d,默認(rèn)為None 該方法可以用來判斷某鍵是否包含在字典內(nèi) |
items | 返回類似集合的可遍歷的(鍵, 值) 元組列表 |
keys | 返回類似集合的可遍歷的鍵列表 |
pop | 刪除一個鍵并返回其對應(yīng)的值 |
popitem | 隨機(jī)返回并刪除字典中的一對鍵和值(一般刪除末尾對),若列表為空再調(diào)用此方法會拋出KeyError異常 |
setdefault | setdefault(self, k, d=None) 函數(shù)和 get()方法 類似, 如果鍵不存在于字典中,將會添加鍵并將值設(shè)為默認(rèn)值 |
update | 更新字典中的鍵/值對,可以修改存在的鍵對應(yīng)的值,也可以添加新的鍵/值對到字典中,將鍵值對添加到字典中,可能是字典,也可能是鍵-值對序列,詳見實例 |
values | 返回類似集合的可遍歷的值列表 |
示例代碼
# dict import copy # 示例字典 D = { 'name': 'Ruo Data', 'web': { 'site': 'https://www.ruodata.com', 'basic': 'github' }, 'major': 'python' } print(D) print('clear'.center(40, '-')) # clear|清除字典中所有鍵值對 D1 = copy.deepcopy(D) D1.clear() print(D1) print('copy'.center(40, '-')) # copy|對字典進(jìn)行淺拷貝,如需詳細(xì)了解可以參考上上節(jié)可變對象的淺拷貝和深拷貝詳解《Python列表賦值,復(fù)制,深拷貝以及5種淺拷貝詳解》 D2 = copy.deepcopy(D) D2_copy = D2.copy() D2_copy['web']['articl_nums'] = 2 print(D2) print('fromkeys'.center(40, '-')) # fromkeys| fromkeys(*args, **kwargs) 創(chuàng)建一個新字典,以序列的中元素做字典的鍵,value 為字典所有鍵對應(yīng)的初始值 D3 = dict.fromkeys(D) print(D3) D3 = dict.fromkeys(D, 'SSS') print(D3) print('get'.center(40, '-')) # get| get(self, k, d=None) 獲取指定鍵k對應(yīng)的值,如果該鍵不存在則返回d,默認(rèn)為`None` 該方法可以用來判斷某鍵是否包含在字典內(nèi) value = D.get('name') print(value) # 判斷鍵`'TEAM'`是否存在于D中: if D.get('TEAM'): print(D.get('TEAM')) else: print(None) print('items'.center(40, '-')) # items| 返回類似集合的可遍歷的(鍵, 值) 元組列表。 items = D.items() print(items) # 利用items 遍歷字典打印鍵值對: for key, value in D.items(): print('{}: {}'.format(key, value)) print('keys'.center(40, '-')) # keys| 返回類似集合的可遍歷的鍵列表 keys = D.keys() print(keys) print('pop'.center(40, '-')) # pop| 刪除一個鍵并返回其對應(yīng)的值 D4 = copy.deepcopy(D) value = D4.pop('name') print(value) print(D4) print('popitem'.center(40, '-')) # popitem| 隨機(jī)返回并刪除字典中的一對鍵和值(一般刪除末尾對),若列表為空再調(diào)用此方法會拋出KeyError異常 D5 = copy.deepcopy(D) key_value = D5.popitem() print(key_value) print(D5) print('setdefault'.center(40, '-')) # setdefault| setdefault(self, k, d=None) 函數(shù)和 get()方法 類似, 如果鍵不存在于字典中,將會添加鍵并將值設(shè)為默認(rèn)值。 D6 = copy.deepcopy(D) key_value = D6.setdefault('major') print(key_value) key_value = D6.setdefault('UNKONW_KEY', 'UNKOWN_VALUE') print(key_value) print(D6) print('update'.center(40, '-')) # update| 更新字典中的鍵/值對,可以修改存在的鍵對應(yīng)的值,也可以添加新的鍵/值對到字典中,將e中鍵-值對添加到字典d中,e可能是字典,也可能是鍵-值對序列。詳見實例。 D7 = copy.deepcopy(D) # 傳一個字典 D7.update({'three': 3, 'four': 4}) print(D7) # 傳關(guān)鍵字 D7.update(five=5, six=6) print(D7) # 傳一個包含一個或多個元組的列表 D7.update([('seven', 7), ('eight', 8)]) print(D7) # 傳一個包含一個或多個列表的元組 D7.update((['nice', 9], ['ten', 10])) print(D7) # 傳一個zip()函數(shù) D7.update(zip(['eleven', 'twelve'], [11, 12])) print(D7) # 使用以上任意方法修改存在的鍵對應(yīng)的值 D7.update(one=111, two=222) print(D7) print('values'.center(40, '-')) # values| 返回類似集合的可遍歷的值列表 values = D.values() print(values)
示例結(jié)果
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。
相關(guān)文章
Pandas||過濾缺失數(shù)據(jù)||pd.dropna()函數(shù)的用法說明
這篇文章主要介紹了Pandas||過濾缺失數(shù)據(jù)||pd.dropna()函數(shù)的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-05-05Pytorch?PyG實現(xiàn)EdgePool圖分類
這篇文章主要為大家介紹了Pytorch?PyG實現(xiàn)EdgePool圖分類示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04現(xiàn)代Python編程的四個關(guān)鍵點你知道幾個
這篇文章主要為大家詳細(xì)介紹了Python編程的四個關(guān)鍵點,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-02-02如何在conda虛擬環(huán)境中配置cuda+cudnn+pytorch深度學(xué)習(xí)環(huán)境
這篇文章主要介紹了如何在conda虛擬環(huán)境中配置cuda+cudnn+pytorch深度學(xué)習(xí)環(huán)境,想在服務(wù)器上配置深度學(xué)習(xí)的環(huán)境,看了很多資料后總結(jié)出來了對于新手比較友好的配置流程,需要的朋友可以參考下2023-03-03