從零開始學Python (6) — 從零開始學Python — 串列(list)、Tuple(元組)、字典(dict)、集合(set):我的字典裡沒有放棄,因為我還沒有寫進去(下)

Day 06 串列(list)、Tuple(元組)、字典(dict)、集合(set):我的字典裡沒有放棄,因為我還沒有寫進去(下)

Chih-Yu Lin

--

註:本篇文章同步刊載於iT邦幫忙,為鐵人賽之系列文章。
https://ithelp.ithome.com.tw/articles/10240088/

接下來我們要介紹另外兩個資料型態:字典(dict)與集合(set)。
首先是字典:
字典跟串列有點類似的部分,
但是它的表示方式是一個鍵(key)對一個值(value),
就好像函式一樣,一個字典裡面不會出現重覆的key,
但有可能不同key對應的value剛好一樣;
這樣一來,我們就可以用key去查找其對應的value。
需要注意的是,串列是有一個固定的順序排列的,
但字典並不會有固定排序(也就是說一般我們不在意排的順序)。

key和value可以是各種不同的型態如str, int, float, bool等等,
但是key必須要是hashable的資料型態(像list就不是hashable),
value做為被對應的對象,則沒有這種限制。

字典的建立方式,可以用dict()方法,也可以用大括號{},
當中每個key和value的對應使用冒號:來分隔,
而每組key:value之間,使用逗號來分開。
同時,要取得某個key對應的value值,
就像list是用index來取得對應位置的値,字典則使用dict[key]來取得。

>>> dic0 = dict()
>>> dic0
{}
>>> dic = {'xd': 1, '放棄': False, [1,5,9]: 3} # list是unhashable,不能作為key
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> dic = {'xd': 1, '放棄': False, 3.33: 3} # 這樣就沒問題啦!
>>> dic
{'xd': 1, '放棄': False, 3.33: 3}
>>> dic['XD'] #

--

--

Chih-Yu Lin

LeetCode、Python、Java、Android;第11屆iT邦幫忙鐵人賽Software Development組優選(從LeetCode學演算法);HiSKIO特約講師;課程優惠: https://bit.ly/lc2022all ;合作請洽: learnwithdesolve@gmail.com