Python之字典(dict)

#-- 經常使用字典常量和操做
D = {}
D = {'spam':2, 'tol':{'ham':1}} # 嵌套字典
D = dict.fromkeys(['s', 'd'], 8) # {'s': 8, 'd': 8}
D = dict(name = 'tom', age = 12) # {'age': 12, 'name': 'tom'}
D = dict([('name', 'tom'), ('age', 12)]) # {'age': 12, 'name': 'tom'}
D = dict(zip(['name', 'age'], ['tom', 12])) # {'age': 12, 'name': 'tom'}
D.keys(); D.values(); D.items() # 字典鍵、值以及鍵值對
D.get(key, default) # get函數
D.update(D_other) # 合併字典,若是存在相同的鍵值,D_other的數據會覆蓋掉D的數據
D.pop(key, [D]) # 刪除字典中鍵值爲key的項,返回鍵值爲key的值,若是不存在,返回默認值D,不然異常
D.popitem() # pop字典中隨機的一項(一個鍵值對)
D.setdefault(k[, d]) # 設置D中某一項的默認值。若是k存在,則返回D[k],不然設置D[k]=d,同時返回D[k]。
del D # 刪除字典
del D['key'] # 刪除字典的某一項
if key in D: if key not in D: # 測試字典鍵是否存在
# 字典注意事項:(1)對新索引賦值會添加一項(2)字典鍵不必定非得是字符串,也能夠爲任何的不可變對象
# 不可變對象:調用對象自身的任意方法,也不會改變該對象自身的內容,這些方法會建立新的對象並返回。
# 字符串、整數、tuple都是不可變對象,dict、set、list都是可變對象
D[(1,2,3)] = 2 # tuple做爲字典的key
 
#-- 字典解析
D = {k:8 for k in ['s', 'd']} # {'s': 8, 'd': 8}
D = {k:v for (k, v) in zip(['name', 'age'], ['tom', 12])} # {'age': 12, 'name': tom}
 
#-- 字典的特殊方法__missing__:當查找找不到key時,會執行該方法
class Dict(dict):
def __missing__(self, key):
self[key] = []
return self[key]
dct = dict()
dct["foo"].append(1) # 這有點相似於collections.defalutdict

dct["foo"] # [1]app

相關文章
相關標籤/搜索