天天看點

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

字典

dictionary

,在一些程式設計語言中也稱為

hash

map

,是一種由鍵值對組成的資料結構。

顧名思義,我們把鍵想象成字典中的單詞,值想象成詞對應的定義,那麼——

一個詞可以對應一個或者多個定義,但是這些定義隻能通過這個詞來進行查詢。

基本操作

空字典

Python 使用

{}

或者

dict()

來建立一個空的字典:

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

有了dict之後,可以用索引鍵值的方法向其中添加元素,也可以通過索引來檢視元素的值:

插入鍵值

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

檢視鍵值

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

更新鍵值

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

初始化字典

可以看到,Python使用

key: value

這樣的結構來表示字典中的元素結構,事實上,可以直接使用這樣的結構來初始化一個字典:

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

字典沒有順序

當我們

print

一個字典時,Python并不一定按照插入鍵值的先後順序進行顯示,因為字典中的鍵本身不一定是有序的。

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

是以,Python中不能用支援用數字索引按順序檢視字典中的值,而且數字本身也有可能成為鍵值,這樣會引起混淆。

鍵必須是不可變的類型

出于hash的目的,Python中要求這些鍵值對的鍵必須是不可變的,而值可以是任意的Python對象。

一個表示近義詞的字典:

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。
python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

使用 dict 初始化字典

除了通常的定義方式,還可以通過

dict()

轉化來生成字典:

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

利用索引直接更新鍵值對:

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

适合做鍵的類型

在不可變類型中,整數和字元串是字典中最常用的類型;而浮點數通常不推薦用來做鍵,原因如下:

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

 事實上,觀察

data

的值就會發現,這個錯誤是由浮點數的精度問題所引起的:

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

 有時候,也可以使用元組作為鍵值,例如,可以用元組做鍵來表示從第一個城市飛往第二個城市航班數的多少:

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

字典方法

get

方法

之前已經見過,用索引可以找到一個鍵對應的值,但是當字典中沒有這個鍵的時候,Python會報錯,這時候可以使用字典的

get

方法來處理這種情況,其用法如下:

`d.get(key, default = None)`

           

傳回字典中鍵

key

對應的值,如果沒有這個鍵,傳回

default

指定的值(預設是

None

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

指定預設值參數:

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

pop

方法删除元素

pop

方法可以用來彈出字典中某個鍵對應的值,同時也可以指定預設參數:

`d.pop(key, default = None)`

           

删除并傳回字典中鍵

key

對應的值,如果沒有這個鍵,傳回

default

指定的值(預設是

None

)。

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。
python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

與清單一樣,

del

函數可以用來删除字典中特定的鍵值對,例如:

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

update

方法更新字典

之前已經知道,可以通過索引來插入、修改單個鍵值對,但是如果想對多個鍵值對進行操作,這種方法就顯得比較麻煩,好在有

update

方法:

`d.update(newd)`

           

将字典

newd

中的内容更新到

d

中去。

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

把'first'改成'James',同時插入'middle'的值'Clerk':

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

in

查詢字典中是否有該鍵

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。

keys

方法,

values

方法和

items

方法

`d.keys()` 

           

傳回一個由所有鍵組成的清單;

`d.values()` 

           

傳回一個由所有值組成的清單;

`d.items()` 

           

傳回一個由所有鍵值對元組組成的清單;

python字典 字典 dictionary ,在一些程式設計語言中也稱為 hash , map ,是一種由鍵值對組成的資料結構。