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