一、定义字典
定义一个字典有三种方法:
1. dict_1 = dict()
2. dict_2 = {}
3. 引用collections中的defaultdict
dict_3 = defaultdict(int)
print dict_3["a"] # 输出: 0
二、为字典设置默认值
有两种方式可以为不存在的key设置默认值
1.dict
dict_4 = {}
print dict_4.setdefault("a", 0) # 输出:0
print dict_4["a"] + 1 # 1
dict_4.setdefault(“a”, 0),如果dict_4中有“a”这个key,则返回“a”对应的value,如果没有,则返回0
2.defaultdict
dict_5 = defaultdict(int) # int可以替换为list,tuple,dict,str等数据类型
print dict_5["a"] # 输出:0
defaultdict类可以接受两类参数:
a. 类型参数
b.函数
示例1:lambda函数
dict_6 = defaultdict(lambda:2)
print dict_6["1"] # 输出:2
示例2:任意不带参数的函数,返回的值就是字典的默认值
def dict_fun():
return None
dict_7 = defaultdict(dict_fun)
print dict_7["1"] # 输出:None
示例3:利用itertools.repeat()将任意常量值作为字典的默认值
def constant_factory(value):
return itertools.repeat(value).next
d = defaultdict(constant_factory('<missing>'))
d.update(name='John', action='ran')
print '%(name)s %(action)s to %(object)s' % d # 输出:'John ran to <missing>'