[python筆記] 9.資料型別 – dictionary and set

前言:

終於來到資料型別的最後一個部分,廢話不說看下去。
Dictionary,翻譯為字典。也確實如同字典一樣,這個資料型態的用法就是一個名詞對應一個解釋,衍伸的操作則是一個符號對應一個定義,又或是一個編號對應一個名稱。
Set,翻譯為集合,與數學上的集合一樣,如果該集合裡存在兩個以上的元素,集合會當作一個元素判斷。
他們雖然也是由許多資料組成的一個資料,但跟 list 與 tuple 不同,並不是序列型態,因此無法使用 index 作為操作的基礎,那麼要如何來使用字典跟集合呢?

閱讀時間:10分鐘

什麼是 字典與集合

字典與集合並不像 list 與 tuple 有個相似的概念,會放在一起是因為他們表示方式都是使用 { },因此要將他們看做兩個完全獨立的資料型態。

字典如同前面所說,就是一種資料對應,比較常見的說法是為複雜難記的資料提供一個好記的別名,未來想要使用該資料,只要使用別名就可以。或許你會好奇,這樣跟使用變數有什麼不同?別忘了字典還是一個許多資料的組合,所以它也就是將一堆難記的資料蒐集並一一賦予別名,有種收納整理的感覺。

集合完全是數學上集合的概念了,如果還記得國高中時代的文氏圖,那也就清楚集合的用法啦。所以過濾、檢查、合併資料都是集合的強項。

接著來看看這兩資料型態的CRUD方式。
什麼是CRUD?
分別是create, read, update, and delete ,這四個資料操作。

字典的操作

字典可以分為 key 以及 value,從上面的例子:”台北”:”02″,key 就是”台北”,value 就是”02″。

增加/修改

字典的增加與修改主要都是透過 update() 這個方法。使用這個方法,要在()裡面將要增加以及修改的內容,以字典的方式填入。

讀取

使用字典比較多是透過 key 去獲取 value 的資訊,這個方法是 get() 。
在最上的圖片可以看到。
而另一種方式與串列等序列型態類似,使用「[ ]」中括號,將 key 填入括號中取得 value,與 get() 方法不同的是,如果欲找的 key 不存在,get() 會給 None 作為替代,而「[ ]」則會引發錯誤。

dic_N_phone_code={"台北":"02", "基隆":"02", "桃園":"03", "新竹":"03", "宜蘭":"03"}
print(dic_N_phone_code.get("高雄")) # None
print(dic_N_phone_code["高雄"]) # 發生錯誤

刪除

刪除有三種方式來刪除:clear()、pop()、popitem()。
其中 pop() 與 popitem() ,也可以當作讀取使用,使用的方式跟 list 的 pop() 類似。而 clear() 方法也跟 list 的 clear() 一樣,使用後刪除裡面的所有元素,只留下一個{ }。
那直接來看 pop() 與 popitem() 的用法吧。

補充 :
使用 pop() 方法,需要提供 key ,所以跟 list 的 pop() 一樣,是可以指定的,只不過一個是指定 index,一個是指定 key。
特別要注意的是 popitem(),仔細看獲取的元素並不按照原本的資料型別(字典),而是使用 tuple。另一點是被取出的元素,是最後一個元素。

集合的操作

集合除了 CRUD 以外,也包含集合的運算:交(intersection)、減(difference)、聯(union)。

增加/修改

使用 add() ,集合內增加一個元素(未重複)。
使用 update(),()裡填入另一個集合,將兩集合合併成一個集合。

讀取/刪除

相關的方法有三個,也與字典的方法很像:clear()、pop()、remove(),用法也非常類似,不同的是 pop() 不須指定,而 remove() 則需要指定。

交(intersection)、減(difference)、聯(union)

python 因為其易讀的特性,交集、減集以及聯集,就是直接使用以上的英文作為方法。

結語

非常快的,筆記完了常用的資料型別,接下來還剩一點,就可以開始動手練習 python。
在動手練習的過程,遇到需要做資料處理的時候,不要急著自己動手寫,有時候可以去查看看該資料型別,是否已經有提供了方法來加快開發。善用 python 提供的方法,才是寫好 python 的關鍵,永遠記得不要重複去寫已經有的功能,這並不會讓你的程式比較厲害。

This article was written by 洋洋. Any similarities to other works are purely coincidental.

我們是 Be Good Tool
團隊由幾位工程師、設計師與PM組成
專注開發各種免費網站工具和推廣優質的APP
歡迎到我們的線上工具列表看看喔!