建立和使用字典
字典由鍵及其相應的值組成,這種兼職對稱為項。
函式dict
使用函式dict從其他對映或鍵值對序列建立字典。
in [1]
: items=[(
'name'
,'gumby'),
('age',42
)]in [2]
: d=
dict
(items)
in [3]
: dout[3]
:in [4]
: d[
'name'
]out[4]
:'gumby'
# 使用關鍵字實參來呼叫
in [5]
: d=
dict
(name=
'gumby'
, age=42)
in [6]
: dout[6]
:in [7]
: d[
'age'
]out[7]
:42
基本的字典操作
# 返回鍵值對個數
in [8]
:len
(d)out[8]
:2# 根據鍵獲取對應值
in [9]
: d[
'age'
]out[9]
:42# 改變鍵的關聯值
in [10]
: d[
'age']=
60# 刪除指定鍵
in [11]
:del d[
'name'
]# 檢查字典d是否包含鍵為k的項
in [13]
:'age'
in d
out[13]
:true
字典和列表的區別
字典方法
clear
刪除所有字典項;
in [14]
: d=
in [15]
: dictmap=
dict
(d)in [16]
: dictmap
out[16]
:in [17]
: dictmap.clear(
)in [18]
: dictmap
out[18]
:
copy
淺複製
in [8]
: x =
in [9]
: y=x.copy(
)in [10]
: y[
'username']=
'msk'
# 當替換副本中的值時,原件不受影響,然而如果修改副本中的值(就地修改),原件也將發生變化,因為原件也指向這個被修改的值。
in [11]
: xout[11]
:in [12]
: yout[12]
:in [13]
: y[
'machines'
].remove(
'bar'
)in [14]
: xout[14]
:in [15]
: yout[15]
:
深複製
in [22]
:from copy import deepcopy
in [23]
: d=
in [24]
: d[
'name']=
['hello1'
,'hello2'
]# 淺拷貝
in [25]
: c=d.copy(
)# 深拷貝
in [26]
: dc=deepcopy(d)
in [27]
: d[
'name'
]'liming'
)# 受影響
in [28]
: cout[28]
:# 不受影響
in [29]
: dc
out[29]
:
# d c指向同乙個物件
in [31]
: d==c
out[31]
:true
# d和dc指向不同的物件
in [32]
: dc==d
out[32]
:false
fromkeys
建立乙個新字典,其中包含指定的鍵,且每個鍵對應的值都是none。
in [36]
:.fromkeys(
['name'
,'age'])
out[36]
:
get
為訪問字典提供了寬鬆的環境,通常如果訪問字典中沒有的項將引發錯誤。
in [37]
: d=
in [38]
: d[
'name']-
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
--keyerror traceback (most recent call last)
input-38
-5c3cd6209e7b
>
in--
-->
1 d[
'name'
]keyerror:
'name'
# 可以指定預設值
in [41]
: d.get(
'name'
,'miss'
)out[41]
:'miss'
items
方法items返回乙個包含所有字典項的列表,每個元素都是(key,value)形式,排序不確定。
in [42]
: d =
in [43]
: d.items(
)out[43]
: dict_items([(
'title'
,'python web site'),
('url'
,''),
('spam',0)
])
返回值屬於一種名為字典試圖的特殊型別,,可用於迭代。
keys
返回乙個包含字典中鍵的字典試圖;
values
返回乙個由字典中值組成的字典檢視,可能包含重複值。
pop
可用於獲取與指定鍵相關聯的值,並將該鍵-值對從字典中刪除;
popitem
隨機彈出;
setdefault
獲取與指定鍵相關聯的值,除此之外,如果獲取的值不在字典中,則向其中新增指定鍵值對。指定鍵不存在就更新字典,存在就返回其值。
in [45]
: d=
in [46]
: d.setdefault(
'name'
,'hello'
)out[46]
:'hello'
in [47]
: dout[47]
:in [49]
: d[
'name']=
'123'
in [50]
: dout[50]
:in [51]
: d.setdefault(
'name'
,'hello'
)out[51]
:'123'
in [52]
: dout[52]
:
update
使用乙個字典的項來更新另乙個字典。通過引數提供的字段,將其項新增到當前字典中,如果當前字典包含鍵相同的項就替換。
in [52]
: dout[52]
:in [53]
: d=
in [54]
: e=
in [55]
: d.update(e)
in [56]
: dout[56]
:
Python對映型別 字典
雜湊對映或者相連陣列 keys和values方法分別用於獲取鍵和值的列表。雖然鍵值對沒有特定的順序,但這兩個函式會以相同的順序輸出鍵和值。for key,value in zip key list,value list dict型別函式直接處理二元元組列表 字典推導式 if key in some ...
Python中的對映 字典
1 字典的建立 1 直接進行建立 dict dict 2 利用工廠方法建立 dict dict x 1 y 2 3 通過內建方法進行建立,fromkeys 來建立乙個預設的字典,字典中的元素具有相同的值 預設的值是none dict fromkeys x y 1 2 訪問字典中的值 3 判斷字典中是...
對映(Mapping) 字典
通過名字來引用值得資料結構稱為對映 字典 dict 字典是鍵值對 key value pair 的無序可變集合。1 字典的操作 字典的建立 字典中的每個元素包含兩部分 鍵和值。鍵和值用冒號分隔,元素間用逗號分隔,所有元素放在一對大括號中。d 字典中的鍵為任意不可變物件,比如整數 實數 複數 字串 元...