基礎知識 字典

2021-10-23 01:34:31 字數 4904 閱讀 9055

空字典(沒有任何項)用兩個花括號表示,即{}

len(d)

返回字典d包含的項(鍵-值對)數

d[k]

返回與健k相關聯的值

d[k] = v

將值v關聯到鍵k

del d[k]

刪除鍵為k的項

k in d

檢查字典d是否包含鍵為k的項

1、clear

方法clear刪除所有的字典項,這種操作是就地執行的,因此什麼都不返回。

>>

> d =

>>

> d[

'name']=

'gumby'

>>

> d[

'age']=

42>>

> d

>>

> return_value = d.clear(

)>>

> d

>>

>

print

(return_value)

none

>>

>

看看下面兩個場景,場景一:

>>

> x =

>>

> y = x

>>

> x[

'key']=

'value'

>>

> y

>>

> x =

>>

> y

場景二:

>>

> x =

>>

> y = x

>>

> x[

'key']=

'value'

>>

> y

>>

> x.clear(

)>>

> y

場景一中,通過將乙個空字典賦給x來「清空」它。這對y沒有影響,它依然指向原字典。如果要刪除原來字典的所有元素,必須使用clear。這樣做的話y也將是空的。如第二個場景所示。

2、copy

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

> x =

>>

> y = x.copy(

)>>

> y[

'username']=

'mlh'

>>

> y[

'machines'

].remove(

'bar'

)>>

> y

>>

> x

由上述**可知,當替換副本中的值時,原件不受影響。然而,如果修改副本中的值,原件也將發生變化,因為原件指向的也是被修改的值。

為避免這種問題,一種辦法是執行深複製,即同時複製值及其包含的所有值,可使用模組copy中的函式deepcopy。

>>

>

from copy import deepcopy

>>

> d =

>>

> d[

'names']=

['alfred'

,'bertrand'

]>>

> c = d.copy

>>

> dc = deepcopy(d)

>>

> d[

'names'

]'clive'

)>>

> c

>>

>dc

3、fromkeys

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

>>

>

.fromkeys(

['name'

,'age'])

這個實列首先建立了乙個空字典,再對其呼叫方法fromkeys來建立另乙個字典,這顯得有點多餘。你可以直接對dict呼叫fromkeys。

>>

>

dict

.fromkeys(

['name'

,'age'])

如果不想使用預設值,可以自己設定。

>>

>

dict

.fromkeys(

['name'

,'age'],

'unknow'

)

4、get

方法get為訪問字典項提供了寬鬆的環境,通常,如果你試圖訪問字典中沒有的項,將引發錯誤。

>>

> d =

>>

>

print

(d['name'])

traceback (most recent call last)

: file ""

, line 1,in

keyerror:

'name'

如果使用get不會這樣

>>

> d =

>>

>

print

(d.get(

'name'))

none

也可以指定預設值

>>

> d.get(

'name'

,'n/y'

)'n/y'

如果能夠找到指定的鍵,get的作用將與普通字典查詢相同。

>>

> d[

'name']=

'eric'

>>

> d.get(

'name'

)'eric'

5、items

方法items返回乙個包含所有字典項的列表,其中每個元素都是(key,value)的形式。字典項在列表中的排列順序不確定。

>>

> t =

>>

> t.items(

)dict_items([(

'title'

,'python web site'),

('url'

,'htttp:'),

('span',0

)])

確定長度和成員資格檢查。

>>

> d = t.items(

)>>

>

len(d)

3>>

>

('span',0

)in d

true

6、keys

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

7、pop

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

>>

> d =

>>

> d.pop(

'x')

1>>

> d

8、popitem

方法popitem隨機的彈出乙個字典項,字典的順序是不確定的。

9、setdefault

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

>>

> t =

>>

> t.setdefault(

'name'

,'n/a'

)'n/a'

>>

> t

>>

> t[

'name']=

'guan'

>>

> t.setdefault(

'name'

,'n/a'

)'guan'

>>

> t

當指定的鍵不存在時,setdefault返回指定的值並相應的更新字典。如果指定的鍵存在,就返回其值,並保持字典不變。與get一樣,值是可選的,如果沒有指定,預設值為none。

>>

> k =

>>

>

print

(k.setdefault(

'name'))

none

>>

> k

10、update

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

11、values

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

>>

> d[1]

=1>>

> d[2]

=2>>

> d[3]

=3>>

> d[4]

=1>>

> d.values(

)dict_values([1

,2,3

,1])

python基礎知識(字典)

建立字典 變數名 zip 轉換為zip物件 空字典變數名 變數名 dict key value,建立只有鍵的字典 fromkey函式 變數名 dict.fromkey 建立只有鍵的字典 刪除字典 del 變數名 變數名.clear 清空 通過鍵值對訪問字典 dict 鍵 dictionary.get...

Python基礎知識 字典dict

字典是python中常用的資料型別,由於字典較為複雜,本文總結了字典的構成,常用處理字典方法和常用處理字典函式 使用鍵 值 key value 儲存,具有極快的查詢速度 例如 dict1 key的特性 字典中的key必須唯一 key必須是不可變的物件 字串,整數不可變。list可變,不能作為key ...

筆記三 Python基礎知識 字典

字典 字典是由鍵及其相應的值組成,這種鍵 值對稱為項 item 每個鍵與其值之間都用冒號 分隔,項之間用逗號分隔,而整個字典發放在花括號內。空字典 沒有任何項 用兩個花括號表示,類似於這樣 注意 在字典 以及其他對映型別 中,鍵必須是獨一無二的,而字典中的值無需如此。dict 可使用dict函式從其...