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...