Photo by Susan Yin on Unsplash
在這邊鼓勵大家在看部落格的同時,可以打開自己的開發工具練習,這樣可以增加對Python的熟悉度唷。Python開發環境的建置可以參考Visual Studio Code Python環境建置文章,準備好了嗎,讓我們進入今天的主題吧。
今天要來跟大家介紹Python一個非常重要的資料型態Dictionary(字典),同樣是一個容器(集合)可以用來存放不同資料型態的資料,不過與串列(List)、元組(Tuples)不一樣的地方是,它的每一個元素是以鍵(Key)及值(Value)構成,再由 {} 符號將所有元素括起來,如下範例:
Dictionary(字典)有幾個特性:
- Iterable(可疊代的):和前面介紹的字串(String)、串列(List)及元組(Tuples)一樣是可疊代的物件,可以透過Python迴圈來進行元素的讀取。
- Modifiable(可修改的):和串列(List)一樣可以透過Python提供的方法(Method)來對Dictionary(字典)的值進行修改。
- Key-Value pairs(鍵與值):Dictionary(字典)的每一個元素由鍵(Key)及值(Value)構成。鍵(Key)的資料型態通常我們使用String(字串)或Integer(整數),而值(Value)可以是任何資料型態。
瞭解了Dictionary(字典)的特性後,本篇文章就來介紹Python
Dictionary(字典)的基本操作,包含:
- 建立Dictionary的方法
- 存取Dictionary元素的方法
- 新增Dictionary元素的方法
- 修改Dictionary元素的方法
- 刪除Dictionary元素的方法
- 尋找Dictionary元素的方法
一、建立Dictionary的方法
1.於 {} 符號中輸入每個元素的鍵(Key)與值(Value)。
2.使用dict()方法,傳入鍵(Key)的名稱,並且指派值(Value)給它。此種傳入參數稱為關鍵字參數(keyword arguments),後續會出文章詳加介紹。
二、存取Dictionary元素的方法
當存取的鍵(Key)名稱不在字典(Dictionary)中時,會發生KeyError的例外錯誤。
要解決此問題的方法有兩種,一種就是在存取字典(Dictionary)的元素前,先使用Python條件判斷來檢查元素是否在字典(Dictionary)中,如下範例。另一種解決方法就是使用文章最後會介紹的get()方法。
範例中由於Harry鍵(Key)名稱不存在於字典(Dictionary)中,所以不會印出它的值(Value)。
範例中可以看到,Python迴圈每一次讀取字典(Dictionary)時,只能存取到鍵(Key)的名稱,如果想要同時存取鍵(Key)與值(Value)的話,有兩種方法,第一種可以使用items()方法,如下範例,第二種方法則可以使用Python的Unpacking技巧(在下一篇文章中會來跟各位介紹)。
三、新增Dictionary元素的方法
1.於 [] 符號中輸入要新增的鍵(Key)的名稱,並且指派一個值(Value)給它。
四、修改Dictionary元素的方法
1.於 [] 符號中輸入鍵(Key)的名稱,並且指派要修改的值(Value)給它。
五、刪除Dictionary元素的方法
1.使用del指令,並且於 [] 符號中輸入要刪除的元素鍵(Key)名稱。
2.使用clear()方法,刪除字典(Dictionary)中的所有元素。
六、尋找Dictionary元素的方法
1.使用get()方法,傳入要尋找的鍵(Key)名稱,它會回傳其值(Value)。如果傳入的鍵(Key)名稱不存在,get()方法預設會回傳None。
get()方法也提供了第二個參數,來自行設定當鍵(Key)名稱不存在時,要回傳的值(Value)。
七、小結
以上就是Python字典(Dictionary)的介紹,在練習的過程中若有碰到問題或說明不清楚的地方,歡迎留言與我分享!
如果您喜歡我的文章,請幫我按五下Like(使用Google或Facebook帳號免費註冊),支持我創作教學文章,回饋由LikeCoin基金會出資,完全不會花到錢,感謝大家。
如果您喜歡我的文章,請幫我按五下Like(使用Google或Facebook帳號免費註冊),支持我創作教學文章,回饋由LikeCoin基金會出資,完全不會花到錢,感謝大家。
有想要看的教學內容嗎?歡迎利用以下的Google表單讓我知道,將有機會成為教學文章,分享給大家😊
感謝老師的教學,額外想請教老師:我已學了一段時間的python但真正要全部融合運用又有困難,如何去活用它變成是我目前的問題?未來是否能在節末出幾道思考實作運用呢?感謝您_/\_
回覆刪除感謝您的建議,未來會在適當的主題放入練習,前面由於考慮到初學者,所以前期觀念性的文章會比較多,之後有實作性的文章會放上練習。
刪除感謝前輩的教學文章!!但如樓上所說還是不會運用...請問前輩當初在學習的時候有用過哪幾本參考書嗎?想去採購來學習看看
回覆刪除收到~ 這幾天來整理一下我覺得不錯的學習資源,再發表一篇文章,記得收看唷。
刪除