Python學習筆記 字典

2021-10-03 03:59:56 字數 4624 閱讀 8031

2 字典方法

字典旨在讓你能夠輕鬆的找到特定的單詞(鍵),以獲取其定義(值)。如:

字典由鍵及其相應的值組成,這種鍵值對成為項(item)。如:

>>

> people =

>>

> people

每個鍵與其值之間都用冒號分隔,項之間用逗號分隔,而整個字典放在花括號內。

使用函式dict從其他對映或者鍵值對序列建立字典。

>>

> items =[(

'name'

,'li'),

('age',27

)]>>

> d =

dict

(items)

>>

> d

>>

> d[

'name'

]'li'

還可以使用關鍵字實參來呼叫這個函式。

>>

> d =

dict

(name =

'li'

, age =27)

>>

> d

字典的基本操作在很多方面都類似於序列:

以下是跟序列一些重要的不同之處:

在字典中儲存一系列鍵值對,只需要在格式字串中提取所需的資訊即可,可通過format_map來通過乙個對映來提供所需的資訊。

>>

> people =

>>

>

"li's number is "

.format_map(people)

"li's number is 886"

在使用字典時,可指定任意數量的轉換說明符,條件是所有欄位名都是包含在字典中的鍵 。

在模板系統中,這種 字串格式設定方式很有用

>>

> template =

'''...... ... ... ... '''

>>

> data =

>>

>

print

(template.format_map(data)

)this is a title<

/title>

<

/head>

this is a title

i am a text<

/body>

下面介紹一些常用的方法。

方法clear刪除所有的字典項。

>>

> d =

>>

> d[

'name']=

'li'

>>

> d[

'age']=

27>>

> d

>>

> d.clear(

)>>

> d

方法copy返回的是乙個新字典,其包含的鍵值對與原來的字典相同。但這個方法執行的是淺複製,因為值本身是原件,而非副本。

>>

> x =

>>

> y = x.copy(

)>>

> y[

'username']=

'tang'

>>

> y[

'machine'

].remove(

'mac'

)>>

> y

>>

> x

如上述示例,當替換副本中的值時,原件不受影響。然而如果修改副本中的值,原件也就發生變化,因為原件指向的也是被修改的值(就地修改而不是替換)。

還有一種方法,就是深複製deepcopy,即同時複製值和包含的所有的值。

>>

>

from copy import deepcopy

>>

> x =

>>

> y = deepcopy(x)

>>

> y[

'username']=

'tang'

>>

> y[

'machine'

].remove(

'mac'

)>>

> y

>>

> x

>>

>

方法fromkeys建立了乙個新字典,其中包含指定的鍵,且每個鍵對應的值都是none。

>>

>

dict

.fromkeys(

['name'

,'age'])

方法get的作用與普通的字典查詢相同。

如果使用通常的方法訪問字典中沒有的項會報錯,而使用get則不會

>>

> d =

>>

> d[

'name'

]traceback (most recent call last)

: file ""

, line 1,in

keyerror:

'name'

>>

>

print

(d.get(

'name'))

none

使用get來訪問不存在的鍵時,可指定預設值。(可用來做提示語等功能)

>>

> d.get(

'name'

,'n/a'

)'n/a'

方法items返回乙個包含所有字典項的列表,其中每個元素都為鍵值對的形式,但字典項在列表中的排序不確定。

>>

> people =

>>

> people.items(

)dict_items([(

'li'

,886),

('tang',12

),('lin'

,126)]

)

其返回值成為字典檢視,可用於迭代,也可確定其長度以及對其執行成員資格檢查。

>>

> it = people.items(

)>>

>

len(it)

3>>

>

('li'

,886

)in it

true

方法keys返回乙個字典檢視,包含指定字典中的鍵

>>

> people.keys(

)dict_keys(

['li'

,'tang'

,'lin'

])

方法values返回乙個由字典中的值組成的字典檢視,values返回的檢視可能包含重複的值。

>>

> d =

>>

> d.values(

)dict_values([1

,2,1

])

方法pop可用於獲取與指定鍵相關聯的值,並將該鍵值對從字典中刪除。

>>

> people.pop(

'lin'

)126

>>

> people

方法popitem類似於list.pop,但list.pop彈出列表最後乙個元素,而popitem隨機地彈出乙個字典項,因為字典本身沒有順序。

>>

> people.popitem()(

'tang',12

)>>

> people

>>

> people.popitem()(

'li'

,886

)>>

> people

方法setdefault有點像get,因為它也獲取 與指定鍵相關聯的值,但除此之外,setdefault還在字典不包含指定的鍵,在字典中新增指定的鍵值對。

>>

> d =

>>

> d.setdefault(

'name'

,'n/a'

)'n/a'

>>

> d

>>

> d[

'name']=

'li'

>>

> d.setdefault(

'name'

,'n/a'

)'li'

>>

> d

方法update使用乙個字典中的項來更新另乙個字典。

>>

> people =

>>

> x =

>>

> people.update(x)

>>

> people

python學習筆記 字典

方法一 dict1 dict2 dict1,dict2 方法二 從python 2.2 版本起,可以使用乙個工廠方法,傳入乙個元素是列表的元組作為引數 fdict dict x 1 y 2 fdict 方法三 從python 2.3 版本起,可以用乙個很方便的內建方法fromkeys 來建立乙個 預...

Python學習筆記 字典

1 字典的定義 dictionary 字典 是除列表以外python之中最靈活的資料型別 字典同樣可以用來儲存多個資料 通常用於儲存描述乙個物體的相關資訊 和列表的區別 列表是有序的物件集合 索引,即從0開始,依次遞增 字典是無序的物件集合 字典的定義用 字典使用 鍵值對 儲存資料,鍵值對之間使用逗...

python學習筆記 字典

python學習筆記 字典 方法一 dict1 dict2 dict1,dict2 方法二 從python 2.2 版本起,可以使用乙個工廠方法,傳入乙個元素是列表的元組作為引數 fdict dict x 1 y 2 fdict 方法三 從python 2.3 版本起,可以用乙個很方便的內建方法fr...