Python學(xué)習(xí)之字典詳解

Python字典是一種可變?nèi)萜髂P停铱纱鎯θ我忸愋蛯ο?,如字符串、?shù)字、元組等其他容器模型。本章將學(xué)習(xí)Python?中字典相關(guān)的概念,以及如何訪問和修改字典中的信息。

字典簡介

Python 語言中字典類型是非常靈活的,在實(shí)戰(zhàn)中的使用場景非常多

首先我們看一下定義:

字典,是可變的無序集合(在 Python 最新版本中,已經(jīng)變?yōu)橛行颍?,它是一種以鍵值對為基本元素,可以存放各種數(shù)據(jù)類型的容器,用大括號({})表示字典的開始和結(jié)束,元素之間用逗號(,)進(jìn)行分隔。

前面這段話的重點(diǎn)是【鍵值對】,也就是說字典中的每一個元素(每一項)都是由鍵和值組成的集合,先記住兩個單詞,鍵(Key)和值(Value),鍵值對中間用冒號(:)分隔,例如字典中的一個元素(alien:'color'),前面的 alien 就是鍵,后面的字符串?color 就是值,從鍵值對可以看出,字典屬于一對一的映射關(guān)系。

字典的聲明

使用空的大括號,可以直接聲明一個空字典

定義一個只有一個元素的字典

定義由多個元素的字典

字典設(shè)置時對鍵和值的要求?鍵的要求如下:

鍵要唯一,也就是一個字典對象所有的鍵必須唯一,出現(xiàn)相同的鍵值對,只保留最后一個

例如下述代碼:

鍵名無法直接修改,只能刪除原有鍵值對,再新增鍵值對實(shí)現(xiàn)對鍵名的修改

字典的基本方法

字典作為 Python 中的一個普通對象,其存在一些基本操作方法,具體如下

clear():清空字典;

get():通過指定鍵,或者對應(yīng)值,如果鍵不存在,返回 None;

keys():獲取所有鍵;

values():獲取字典中所有值;

items():以元組格式返回字典中的所有元素;

fromkeys():使用給定的鍵建立新字典,每個鍵對應(yīng)的值默認(rèn)為 None,可以初始化一個字典;

pop():刪除指定鍵,并返回鍵對應(yīng)的值;

popitem():隨機(jī)返回元素,并刪除;

setdefault():設(shè)置鍵值對,當(dāng)字典中鍵不存在,新增,當(dāng)字典中存在鍵值對時,獲取對應(yīng)的值;

update():使用一個字典更新另一個字典;

字典元素添加

字典是一種動態(tài)結(jié)構(gòu),可隨時在其中添加鍵值對。要添加鍵值對,可依次指定字典名、用方括號括起的鍵和相關(guān)的值

向字典中添加元素,可以使用如下幾種形式:

第一種,直接添加,即一次性添加鍵值對

用上述方法添加鍵值對,需要注意添加的鍵在原字典中不存在,否則會執(zhí)行更新操作

第二種,通過?setdefault()?給字典添加新鍵值對,代碼如下:

運(yùn)行結(jié)果:

setdefault()?方法添加已存在的鍵時,不執(zhí)行添加操作,會返回原鍵對應(yīng)的值,如下述代碼:

運(yùn)行結(jié)果:

獲取字典鍵對應(yīng)的值

通過鍵獲取值,有如下兩種形式,例如通過指定鍵查找對應(yīng)值:

運(yùn)行結(jié)果:

該方法如果指定了一個不存在的鍵,會直接報錯,錯誤信息如下所示:

運(yùn)行結(jié)果:

使用?get()?方法也可以獲取鍵對應(yīng)的值,使用該方法獲取值的時候,如果鍵不存在,不會報錯,并且返回 None,如下:

運(yùn)行如下:

如果不希望結(jié)果返回 None,可以設(shè)置缺省返回值,即使用?get()?方法的第二個參數(shù),如下:

運(yùn)行結(jié)果:

字典元素的修改

字典由于鍵不可被修改,所以只能修改值。

下面的兩個方法都可以修改值。,第一種方法在前文已經(jīng)學(xué)習(xí),即使用中括號加鍵進(jìn)行修改,這里咱們不再重復(fù)講解,現(xiàn)在為大家介紹?update()?方法,該方法可以通過字典修改原字典。

運(yùn)行結(jié)果:

使用?update()?方法過程中,你需要注意到,該方法還可以對原字典進(jìn)行新增操作,即當(dāng)待添加的字典中存在原字典未包含的鍵時,會執(zhí)行新增操作。

字典元素的刪除

1.對于字典中不需要的信息,可以使用del語句將相應(yīng)的鍵值對徹底刪除。使用del語句時,必須指定字典名和要刪除的鍵。

代碼如下:

運(yùn)行結(jié)果:

2。使用?pop()?方法刪除,示例代碼如下:

運(yùn)行結(jié)果:

如果使用?pop()?方法刪除不存在的值,會直接報錯,未防止該現(xiàn)象發(fā)生,可以使用?pop()?方法的第二個參數(shù)。

運(yùn)行結(jié)果:

使用?popitem()?方法會隨機(jī)刪除一個元素,示例代碼如下:

運(yùn)行結(jié)果:

字典的遍歷

使用?keys(),values()?和?items()?可以對字典進(jìn)行遍歷,其對應(yīng)關(guān)系分別是遍歷所有鍵,遍歷所有值,遍歷所有鍵值

運(yùn)行結(jié)果:

字典函數(shù)

獲取字段的長度

運(yùn)行結(jié)果:

復(fù)制字典

運(yùn)行結(jié)果:

制作副本的另一種方法是使用內(nèi)建方法 dict()

運(yùn)行結(jié)果:

今天就介紹到這了,謝謝大家。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容