字典 dictionary
,在一些程式設計語言中也稱為 hash
, map
,是一種由鍵值對組成的資料結構。
dictionary
hash
map
顧名思義,我們把鍵想象成字典中的單詞,值想象成詞對應的定義,那麼——
一個詞可以對應一個或者多個定義,但是這些定義隻能通過這個詞來進行查詢。
基本操作
空字典
Python 使用
{}
或者
dict()
來建立一個空的字典:
有了dict之後,可以用索引鍵值的方法向其中添加元素,也可以通過索引來檢視元素的值:
插入鍵值
檢視鍵值
更新鍵值
初始化字典
可以看到,Python使用
key: value
這樣的結構來表示字典中的元素結構,事實上,可以直接使用這樣的結構來初始化一個字典:
字典沒有順序
當我們
print
一個字典時,Python并不一定按照插入鍵值的先後順序進行顯示,因為字典中的鍵本身不一定是有序的。
是以,Python中不能用支援用數字索引按順序檢視字典中的值,而且數字本身也有可能成為鍵值,這樣會引起混淆。
鍵必須是不可變的類型
出于hash的目的,Python中要求這些鍵值對的鍵必須是不可變的,而值可以是任意的Python對象。
一個表示近義詞的字典:
使用 dict 初始化字典
除了通常的定義方式,還可以通過
dict()
轉化來生成字典:
利用索引直接更新鍵值對:
适合做鍵的類型
在不可變類型中,整數和字元串是字典中最常用的類型;而浮點數通常不推薦用來做鍵,原因如下:
事實上,觀察
data
的值就會發現,這個錯誤是由浮點數的精度問題所引起的:
有時候,也可以使用元組作為鍵值,例如,可以用元組做鍵來表示從第一個城市飛往第二個城市航班數的多少:
字典方法
get
方法
get
之前已經見過,用索引可以找到一個鍵對應的值,但是當字典中沒有這個鍵的時候,Python會報錯,這時候可以使用字典的
get
方法來處理這種情況,其用法如下:
`d.get(key, default = None)`
傳回字典中鍵
key
對應的值,如果沒有這個鍵,傳回
default
指定的值(預設是
None
)
指定預設值參數:
pop
方法删除元素
pop
pop
方法可以用來彈出字典中某個鍵對應的值,同時也可以指定預設參數:
`d.pop(key, default = None)`
删除并傳回字典中鍵
key
對應的值,如果沒有這個鍵,傳回
default
指定的值(預設是
None
)。
與清單一樣,
del
函數可以用來删除字典中特定的鍵值對,例如:
update
方法更新字典
update
之前已經知道,可以通過索引來插入、修改單個鍵值對,但是如果想對多個鍵值對進行操作,這種方法就顯得比較麻煩,好在有
update
方法:
`d.update(newd)`
将字典
newd
中的内容更新到
d
中去。
把'first'改成'James',同時插入'middle'的值'Clerk':
in
查詢字典中是否有該鍵
keys
方法, values
方法和 items
方法
keys
values
items
`d.keys()`
傳回一個由所有鍵組成的清單;
`d.values()`
傳回一個由所有值組成的清單;
`d.items()`
傳回一個由所有鍵值對元組組成的清單;