Python學習——字典dict

key-value鍵值對的數據的集合
可變的、無序的、key不重複

字典dict定義初始化

d = dict() 或者 d = {}
dict(**kwargs) 使用name=value對初始化一個字典
dict(iterable, **kwarg) 使用可迭代對象和name=value對構造字典,不過可迭代對象的元素必須是 一個二元結構
d = dict(((1,‘a’),(2,‘b’))) 或者 d = dict(([1,‘a’],[2,‘b’]))
dict(mapping, **kwarg) 使用一個字典構建另一個字典
d = {‘a’:10, ‘b’:20, ‘c’:None, ‘d’:[1,2,3]} 最常用
類方法dict.fromkeys(iterable, value)
d = dict.fromkeys(range(5))
d = dict.fromkeys(range(5),0)

字典元素的訪問

d[key]
返回key對應的值value
key不存在拋出KeyError異常
get(key[, default])
返回key對應的值value
key不存在返回缺省值,如果沒有設置缺省值就返回None
setdefault(key[, default])
返回key對應的值value
key不存在,添加kv對,value爲default,並返回default,如果default沒有設置,缺省爲None

字典的增加和修改

d[key] = value 將key對應的值修改爲value key不存在添加新的kv對
update([other]) -> None 使用另一個字典的kv對更新本字典 key不存在,就添加 key存在,覆蓋已經存在的key對應的值 就地修改
d.update(red=1)
d.update(((‘red’,2),))
d.update({‘red’:3})

字典刪除

pop(key[, default]) key存在,移除它,並返回它的value , key不存在,返回給定的default , default未設置,key不存在則拋出KeyError異常
popitem() 移除並返回一個任意的鍵值對 ,字典爲empty,拋出KeyError異常
clear() 清空字典

del a[‘c’] 看着像刪除了一個對象,本質上減少了一個對象的引用,del 實際上刪除的是名稱,而不是對象

字典遍歷

遍歷key
for k in d: print(k)
for k in d.keys(): print(k)
遍歷value
for k in d: print(d[k])
for k in d.keys(): print(d.get(k))
for v in d.values(): print(v)
遍歷item,即kv對
for item in d.items(): print(item)
for k,v in d.items(): print(k, v)
for item in d.items(): print(item[0], item[1])

key的要求和set的元素要求一致
set的元素可以就是看做key,set可以看做dict的簡化版
hashable 可哈希纔可以作爲key,可以使用hash()測試

collections.defaultdict([default_factory[, …]])
第一個參數是default_factory,缺省是None,它提供一個初始化函數。當key不存在的時候,會調用 這個工廠函數來生成key對應的value

collections.OrderedDict([items])
key並不是按照加入的順序排列,可以使用OrderedDict記錄順序

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章