空字典(沒有任何項)用兩個花括號表示,即{}
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函式從其...