您的位置:首页 > 其它

collections.defaultdict类的使用

2016-02-22 16:34 429 查看
defaultdict可以通过传入一个可执行对象,为不存在的key赋予默认值。

举例:

>>> def f():
yield 1
yield 2
yield 3

>>> it=f()
>>> test=defaultdict(lambda:next(it))
>>> test
defaultdict(<function <lambda> at 0x02C195B0>, {})
>>> test.items()
[]
>>> test['a']
1
>>> test['b']
2
>>> test['c']
3
>>> test.items()
[('a', 1), ('c', 3), ('b', 2)]

从上面的例子可以看出,访问defaultdict对象中不存在的key,会执行传入的函数,并用函数返回值赋值给key。

defaultdict的相关帮助描述如下:

 |  __missing__(...)

 |      __missing__(key) # Called by __getitem__ for missing key; pseudo-code:

 |      if self.default_factory is None: raise KeyError((key,))

 |      self[key] = value = self.default_factory()

 |      return value
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  defaultdict