defaultdict()
定义以及作用
返回一个和dictionary类似的对象,和dict不同主要体现在2个方面:
- 可以指定key对应的value的类型。
- 不必为默认值担心,换句话说就是不必担心有key没有value这回事。总会有默认的value.
1 from collections import defaultdict 2 s=[('yellow',1),('blue',2),('yellow',3),('blue',4),('red',5)] 3 d=defaultdict(list) 4 for k,v in s: 5 d[k].append(v) 6 print list(d.items()) 7 d_2 = {} 8 for k, v in s: 9 d_2.setdefault(k, []).append(v) 10 print list(d_2.items()) 11 12 d_3 = {} 13 for k, v in s: 14 d_3[k].append(v) 15 print d_3.items()
d = defaultdict(list),该语句创建一个defaultdict类型(你可以想象为dict类型),value的类型是你自己指定的类型,实例是list。
d_3是普通的dict,key值必须是唯一,当key重复的时候出现异常。defaultdict是可以直接就进行d[k]的操作,即使d此时还是一个空的字典。
实际过程就是示例里d_2的处理过程。
小提示:
Python 字典(Dictionary) setdefault() 函数和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值。
语法
setdefault()方法语法:
dict.setdefault(key, default=None)
参数
- key -- 查找的键值。
- default -- 键不存在时,设置的默认键值。
返回值
该方法没有任何返回值。
实例
以下实例展示了 setdefault()函数的使用方法:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7}
print "Value : %s" % dict.setdefault('Age', None)
print "Value : %s" % dict.setdefault('Sex', None)
以上实例输出结果为:
Value : 7
Value : None