字典(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