#-- 經常使用字典常量和操做 |
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