您的位置:首页 > 编程语言 > Python开发

Python之字典(dict)

2017-10-20 00:00 441 查看
#-- 常用字典常量和操作
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]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python