【Python學習筆記】Python資料結構dict (字典)

Derek
Oct 2, 2021

--

這篇文章會先介紹dict的概念與語法開始介紹,接續分享dict類別常用的method。

字典(dict)顧名思義就像一本英漢字典,每個單字都有對應的解釋,當我們碰到不理解的單字,都會透過單字查找解釋。同理,dict的組成為key與對應value,key如同字典的單字,value如同這單字的解釋,我們也可在dict資料結構中,透過key取得value。

那麼要如何建立dict資料結構?

語法: {key:value}

其中,key的型態須為不可變的物件,如string、number、tuple。tuple本身是不可變,但tuple組成中有可變物件(如含有list),tuple則不能作為key,否則會產生TypeError。

如dict資料中重複key,後面key的value取代前面的,如程式範例。

如何在dict資料結構取出想要的key/value呢?

用key取值,語法為dict[key1],得對應的value1

如想取用的key不在dict資料結構,會產生KeyError。

承上,如我們想在程式碼中取dict的 key,但又不想得到KeyError,那該怎麼做呢?

我們可以用dict.get(key, value=None); 其中key為想要提取, value預設值為None,也就是存取key不在dict中將回傳None,value也可設定我們想要回傳的值,程式範例如下

如果我們不想回傳None或自行設定的值,而是想如沒key,就順勢建立一個,這該怎麼用呢?

用setdefault處理,語法為dict.setdefault(key,value),其中,如key不存在於dict則回傳value(如程式範例第3行),同步於dict新增key/value(如程式範例第4行)。

那如果要一次提取所有的key或 value或 key/value,那又該怎麼做?

語法為dict.keys()、dict.values()、dict.items()

keys(), values(), items()的應用點如程式範例

用fromkeys(key,value)將key指派到同一個value,換句話說,也可快速修正key至同一個value。語法為dict.fromkeys(key,value=None),如value沒指定,所有key對應到None(此為value的預設值)。

用pop移除指定key、回傳所屬value

語法為 dict.pop(keyname, value); keyname為想刪除的key,value可選擇性設定,如無設定&欲刪除key不在dict,則造成KeyError,程式範例如下

在既有dict下,我們可用dict[key] = value取代原有的value,程式範例如下

承上,也可以用update進行更新(替換),如要替換的key/value不存在於dict,則會在dict新增該組key/value。語法為 dict.update(iterable)

文章會同步發布於FB粉絲專頁,歡迎按讚與分享,謝謝~~~

FB粉絲專頁:Lee’s Coding Hub

--

--