一、定義字典
定義一個字典有三種方法:
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>'