from collections import defaultdict

defaultdict

用于产生一个带有默认值的dict。主要针对key不存在的情况下,也希望有返回值的情况。

>>> a = dict()
>>> a['k1'] = 1
>>> a
{'k1': 1}
>>> a['k2']
-------------------------------
Traceback (most recent call last):File "<stdin>", line 1, in <module>
KeyError: 'k2'
>>>

对于普通的dict,key不存在就报错。

但是对于defaultdict,key不存在就会返回默认值。

那么默认值如何设定?通过给defaultdict()方法传参,传入的是一个函数(或叫做方法),当key不存在时,返回的就是这个函数的默认返回值。

'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:579817333
'''
>>> a = defaultdict(int)
>>> a
defaultdict(<class 'int'>, {})
>>> a['k2']
0
>>>

此时就不会报错。而且返回值是0。

我们还发现了,原来int这个内置函数的默认值是0。看这个示例:

>>> print(int())
0

这里的函数可以是任意自定义函数,只要又default的return即可。

>>> from collections import defaultdict
>>> def fun(): return 666
...
>>> fun()
666
>>> a = defaultdict(fun)
>>> a
defaultdict(<function fun at 0x10a8185f0>, {})
>>> a['nonexist_key']
666
>>>

Python中的defaultdict函数相关推荐

  1. Python 中的 defaultdict 数据类型

    Python 中的 defaultdict 数据类型 官方网址 首先,defaultdict 是 dict 的一个子类.通常 Python 中字典(dict)这种数据类型是通过键值对来存取的,当索引一 ...

  2. python中的pop()函数和popleft()函数

    python中的pop()函数和popleft()函数 首先对于pop而言,它是用于stack中的: stack = [1, 2, 3, 4] print(stack) stack.append(6) ...

  3. python中使用zip函数基于两个列表数据list创建字典dict数据(Create a dictionary by passing the output of zip to dict)

    python中使用zip函数基于两个列表数据list创建字典dict数据(Create a dictionary by passing the output of zip to dict) 目录

  4. python中add函数_如何使用python中的add函数?

    之前向大家介绍过python中的求和函数sum函数,numpy中的sum函数,对于数组可以指定维度进行相加.numpy中还有另一种求和运算方法,即add函数.add函数不仅作用于numpy中加法运算, ...

  5. python 2: 解决python中的plot函数的图例legend不能显示中文问题

    python 2: 解决python中的plot函数的图例legend不能显示中文问题 参考文章: (1)python 2: 解决python中的plot函数的图例legend不能显示中文问题 (2) ...

  6. python中list作为函数参数_在python中list作函数形参,防止被实参修改的实现方法

    0.摘要 我们将一个list传入函数后,函数内部对实参修改后,形参也会随之改变.本文将主要介绍这种错误的现象.原因和解决方法. 1.代码示例 def fun(inner_lst): inner_lst ...

  7. Python中的map()函数和reduce()函数的用法

    Python中的map()函数和reduce()函数的用法 这篇文章主要介绍了Python中的map()函数和reduce()函数的用法,代码基于Python2.x版本,需要的朋友可以参考下  

  8. python input与返回值-python中使用input()函数获取用户输入值方式

    我们编写程序最终目的还是来解决实际问题,所以必然会遇到输入输出的交互问题,python中提供了input函数用来获取用户的输入,我们可以用以下程序演示. user_gender = input(&qu ...

  9. Python中的sorted函数以及operator.itemgetter函数

    from:Python中的sorted函数以及operator.itemgetter函数 operator.itemgetter函数 operator模块提供的itemgetter函数用于获取对象的哪 ...

最新文章

  1. SAP PM设备主记录
  2. 【bug记录】getDeviceId: The user 10002 does not meet the requirements to access device identifiers.
  3. Vue.js学习过程
  4. 团队作业4——第一次项目冲刺(Alpha版本)2017.4.23
  5. 推荐一款UI非常Good的 Redis 客户端工具
  6. matlab每隔几个数求平均,每隔48个数求平均值
  7. c# TcpClient 客户端断线重连类库
  8. Java微信小程序的授权登陆
  9. 【矩阵论】矩阵的广义逆
  10. 纯css按钮代码,纯CSS实现3D按钮效果实例代码
  11. 京东话费充值,点击出现的css样式
  12. Cadence OrCAD Capture 查找功能详细介绍
  13. 直击微软第九频道著名主持Robert Green 对话一站式示例代码库大老板梁梅女士
  14. DRM系列(10)之drm_read
  15. 虚拟机怎么安装geany_75 个最常用的 Linux 应用程序(2018 年)
  16. html设置文本域的,HTML-文本域属性设置
  17. Cassandra 1
  18. 兔老大的系统设计(二)定时系统(延时队列)
  19. 【Arduino】控制A4950的循迹小车设计
  20. 传统项目之OA平台介绍

热门文章

  1. SpringMVC _Controller认识(1)
  2. Asp.net Web.Config - 配置元素 httpCookies
  3. 关于C++中的条件编译
  4. 用master-worker模型比对团队管理
  5. 经常关注的、极具参考价值的网站收集(无限畅想版)
  6. ABAP更改程序的请求包操作
  7. SAP SD:SAP信贷出口
  8. SAP顾问,市场的双重需求
  9. 定义装运点(shipping point)
  10. 46、Power Query-Table.FillDown函数简介