很多人都把这个讲得很复杂,眼花缭乱的,其实很简单:defaultdict()是对dict的改进,如下:

def default0():return 0
from collections import defaultdict
ddict=defaultdict(default0)#空字典,由于字典是键-值的形式,由于定义了默认值为0,所以当键不存在,则返回默认值。
dict={}#平常我们常用的空字典,由于没有定义默认值,所以当键不存在,则直接报错。#测试
print(ddict[1])#随便用什么键测试都行,不一定要是1.
print(dict[1])#随便用什么键测试都行,不一定要是1.

结果如下:一个返回默认值,一个返回0。


分割线


那么defaultdict()有什么用呢?从from collections import defaultdict我们大概就可以猜到,用来计数统计喽。

比如我们需要统计我们的包bag里每一种水果有多少个,如下:

bag = ['apple', 'apple', 'orange']#包里的水果
from collections import defaultdict
ddict=defaultdict(int)#int是什么鬼,带你长长见识,这个相当于默认值为0,更加简洁。但是文章开头那个定义更加通用。
for fruit in bag:ddict[fruit] += 1
ddict

结果如下:

显然,defaultdict很方便,这个时候,如果我们用最普通的dict的话,是要报错的,因为’apple’这样的键不存在,索引将报错keyerror。

python中defaultdict()函数的介绍以及应用场景相关推荐

  1. Python中defaultdict函数的使用方法

    Python的字典是否有默认值? 众所周知,在Python中如果访问字典中不存在的键,会引发KeyError异常(JavaScript中如果对象中不存在某个属性,则返回undefined).但是有时候 ...

  2. python中bin函数如何使用?

    二进制对于大家再熟悉不过了,它是我们计算机编程中必要的语言,只有将其他进制转换为二进制,计算机才得以工作.本文主要介绍能够返回二进制表示的bin()函数,bin()函数用于获取数字的二进制值,接受数字 ...

  3. python中title函数的作用

    我们在python编程中,有的时候需要写标题,但是代码格式为字符串.这时就要用到python中的title函数,它可以将首字母大写,将字符串转换为标题格式. 1.title函数 python中字符串函 ...

  4. Python中float() 函数是如何实现的?

    Python中,会需要用到浮点数,这时就需要我们的float() 函数.float() 函数是一个常见的内置函数,可以将整数和字符串转换成浮点数.本文将向大家介绍float() 函数在Python中具 ...

  5. python中locals函数_python中locals函数的作用是什么?

    在python中,每个模块拥有它自已的名字空间,即全局名字空间.它记录了模块的变量,包括函数.类.其它导入的模块.模块级的变量和常量,方便python的使用.python中字典的使用也是很常见的,使用 ...

  6. python中sleep函数用法_sleep函数函数介绍与使用方法详解

    在一些竞猜的网站中,如果我们需要做一个定时执行的功能,比如有一道题,在十秒之内要完成,否则显示"您已超时",如果完成,则跳转到下一道题上面,而这中间有一个十秒的停顿,这样的功能是怎 ...

  7. 技术图文:举例详解Python中 split() 函数的使用方法

    背景 这篇文章主要介绍Python中的split()函数的使用方法,split()函数通常用于将字符串切片并转换为列表,需要的朋友可以参考一下. 技术分析 Python中有split()和os.pat ...

  8. Python中eval函数的表达式如何使用

    这篇文章主要介绍了Python中eval函数的表达式用法示例,文中通过示例对比来为大家进行详细的讲解,有需要的朋友可以借鉴参下,希望有所帮助 eval 是干嘛的? 解析字符串表达式并执行,并返回一个值 ...

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

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

最新文章

  1. java短横线转驼峰_第二讲:Java的运作原理
  2. 高配人生背后:25岁前最该看透的事儿
  3. 天津财经计算机专业研究生分数线,天津财经大学各专业2015—2020年硕士研究生复试分数线汇总...
  4. 机器学习中的数学知识(part2)
  5. 如何在 ASP.Net Core 中使用 Consul 来存储配置
  6. 眼花缭乱的数据库,怎样选择?给你这个书单,想学哪个学哪个
  7. Jaxb2 转换XML文档
  8. hdu(杭电oj)输入输出练习题目总结
  9. CF - 1214D
  10. Layui图片上传限制一张的问题
  11. Linux 使用 iptables屏蔽IP段
  12. c语言写俄罗斯方块(源码)
  13. 英文java简历模板下载_java英文简历模板
  14. poj2287田忌赛马
  15. 《软件测试过程改进》读书笔记
  16. Python学习笔记三之编程练习:循环、迭代器与函数
  17. 卷积法求解系统的零状态响应_因果系统的零状态响应的一种简易计算方法
  18. 2021美团杯CTF ez-sql
  19. 鹿定制与国际大牌西服的10点区别?丨新浪官方长微博工具
  20. 由于和IBM合作“IBM软件人才联盟”的项目,在社区开一个“IBM人才论坛”

热门文章

  1. 销售 750000 册爆款「蟒蛇书」的新版抢先上市 | 9月书讯
  2. matlab中中图像PSNR和SSIM的计算
  3. Yann LeCun:未来几十年AI研究的最大挑战是「预测世界模型」
  4. 第一届全国计算社会科学高端论坛在清华大学举行
  5. 收藏 | 15个CNN关键回答集锦,2019校招面试必备!
  6. 匿名发差评被判赔3272元,北京研究生遭遇冲上热搜,涉事机构回应:暂不澄清...
  7. AndroidStudio开发jni不加载libs的so,只加载jniLibs的so
  8. Transformer变体为何无法应用于多种任务?谷歌:这些架构更改不能有效迁移
  9. 【CVPR2020-Oral】上交华为:GPA跨域目标检测
  10. 从语言、模型和规模三个维度,打造下一代AI