collection系列用法-defaultdict()

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
原文地址:https://www.cnblogs.com/chushiyaoyue/p/5329175.html