建立和使用字典
字典由多個鍵與其對應的值構成的對組成。
phonebook=
名字是鍵,**號碼是值。每個**號碼和值之間用冒號「:」隔開。每個項之間用「,」隔開。整個字典用的大括號括起來「{}」。
可以用dict函式,通過其他對映(比如其他字典)或者(鍵,值)這樣的序列對建立字典。
list=[("name","alice"),("age",21)]
d=dict(list)
print(d)
dict函式通過關鍵字引數來建立字典
d=dict(name="alice",age=21)
print(d)
clear
clear方法清除字典中所有的項。這是乙個原地操作,無返回值(也可以說返回值是none)。
d={}
d["name"]="alice"
d["age"]=21
print
(d)d.clear
()print
(d)returned_value=d.clear
()print
(returned_value)
copy
copy方法返回乙個具有相同鍵-值對的新字典(此方法實現的是淺拷貝(shallow copy))
x=
y=x.copy()
y["username"]="alice"
y["skill"].remove("fire")
print(y)
print("-"
*30)
print(x)
觀察結果可以看出,在副本中替換值的時候,原始字典並不受影響。但是,倘若修改某個值(原地修改,而非替換),那麼同樣的值也會儲存到原始地點中。這就是淺拷貝的特點。
解決辦法是使用深拷貝(deep copy)。
from copy
import deepcopy #匯入copy包中的deepcopy模組
x=y=x.copy()
dy=deepcopy(x)
y["username"]="alice"
y["skill"].remove("fire")
print(y)
print("-"
*30)
print(x)
print("-"
*30)
print(dy)
關於深拷貝於淺拷貝的區別日後再議。
get
get方法是乙個訪問字典項的方法。如果試圖訪問字典中不存在的項時會報錯但是用get就不會
d={}
print d["name"]
items和iteritems
keys和iterkeys
keys方法將字典中的鍵以列表形式返回,而iterkeys返回針對鍵的迭代器。
popitem
popitem類似於list.pop,後者會彈出列表的左後乙個元素。但是popitem彈出的是隨機的項,原因是字典沒有順序的概念,但是仍可以用這個方法乙個乙個移除並處理項。
update
update方法是用乙個字典項更新另外乙個字典,提供的字典中的項會被新增到舊的字典中去,如果有相同的鍵則會被覆蓋。
d=
x=d.update(x)
print
(d)
python基礎之字典
我們之前學到過,用編號可以對列表經行索引,但是有些時候往往不能通過標號經行索引,可能需要使用字串之類的型別經行索引。比如 我們需要通過姓名查詢 號碼。那麼使用列表就會相對麻煩。對於列表我們需要這樣做 name a b c num 1 2 3 num name.index b 2 這樣做顯然比較麻煩,...
python基礎之字典
dictionary 字典 儲存多個資料 列表是有序的物件集合 字典是無序的物件集合 字典用 定義,使用鍵值對儲存資料,鍵值對之間使用,隔開 鍵key是索引,值value是資料,鍵和值之間使用 分隔 鍵必須是唯一的,值可以取任何資料型別,但鍵只能使用字串 數字或元組 xiaoming print x...
Python基礎之字典
字典是另一種可變容器模型,且可儲存任意型別物件。字典的每個鍵值 key value 對用冒號 分割,每個對之間用逗號 分割,整個字典包括在花括號 中 格式如下所示 d 鍵必須是唯一的,但值則不必。值可以取任何資料型別,但鍵必須是不可變的。訪問字典裡的值,把相應的鍵放入到方括號中,如下例項 dict ...