字典Dictionary
簡稱 Dict
。在 Python 以外的語言,大多稱為 map
,但是 Python 的 map
已經被作為其他用途,所以我們用 Dict
來稱呼今天的主題。
有了列表的概念後,我們可以這樣來解釋字典:
列表的抽屜號碼是數字(0 ~ n-1),而字典的抽屜號碼可以是數字、字串等。
舉例來說,抽屜號碼是 'Name'
,抽屜放的是 'Bob'
。
列表最顯眼的地方是[]
;字典最顯眼的地方是{}
!
所有要被放進字典的元素都會被放在大括號 {}
之內。
因為字典的抽屜號碼可以隨意取名字,所以我們要特別註明。
抽屜號碼稱為 key
,抽屜內容稱為 value
。
表示一組元素的語法是 key : value
;表示一個字典的語法是 {key1 : value1 , key2 : value2 , ...}
。
其中,key
只能是數字、字串等無法被改變的資料型態,value
可以是任何資料型態。
舉一個例子:表示一個學生的基本資料
stu = {
'Name' : 'Bob',
'age' : 17,
'gpa' : 3.6
}
接下來就從三個方向來看字典吧!
想知道一個字典包含幾個元素並不難,用數的就好!{'isValid' : True, 3 : 0.01}
這個列表很明顯就有二個元素,所以他的長度是2
。
加深一點難度,{{'isValid' : True, 3 : 0.01}, 100: "8.8"}
這個列表的長度呢?
其實答案是二個,二個元素分別為{'isValid' : True, 3 : 0.01}
, 100: "8.8"
除了用數的,還有什麼方法可以知道他的長度?
那就來介紹字典的第一個方法(method)吧!
語法:len(DictName)
- 參數可以放置一個字典或是字典變數
- 回傳值是一個整數
空列表的長度為 0
# Example 1
dict1 = {1: 2, 3: 4}
print(len(dict1))
# Example 2
dict2 = {{'Python': 0.01}, 100: "8.8"}
lenOfDict2 = len(dict2)
# Example 3
lenOfDict3 = len({1: 2, 3: 4})
# Example 4
print(len({}))
上述提到鍵值與值的規則:
key
只能是數字、字串等無法被改變的資料型態value
可以是任何資料型態上面我們說到字典的 key 相當於 index ,而且我們知道呼叫列表 value 的語法是 list[index]
。想當然,呼叫字典的 value 的語法就是 dict[key]
。
這個例題的輸出分別是什麼呢?
dic = {"sss" : 12 , "fff" : 33}
print(dic["sss"])
print(dic["abc"])
因為鍵值 "sss"
存在,所以輸出 12
因為鍵值 "abc"
不存在,所以給出錯誤訊息 KeyError: 'abc'
現在,我們要聊聊「鍵值與值」的關係。
你有發現嗎?
「鍵值」好像是獨一無二的
但是「值」似乎不一定要完全相異
沒錯!這就是字典中間值與值的關係!
dict1 = {'Bob' : 12, 'Tom' : 10, 'Bob' : 30}
print(dict1[Bob])
這個程式碼的輸出是什麼?
答案會是 30
喔!相同的鍵值,會以最後出現的為準。
瞭解基本觀念,下一篇來認識字典相關的操作,例如:增減字典元素、內建字典方法...