Python中defaultdict与lambda表达式用法实例小结


Posted in Python onApril 09, 2018

本文实例讲述了Python中defaultdict与lambda表达式用法。分享给大家供大家参考,具体如下:

从教程中看到defaultdict是一个类,在一台装有Python2.7.6的电脑上使用发现不存在。在文档中搜索了一下也没有找到,想当然以为这或许是Python 3.X专有的。因为教程就是基于Python 3.X实现的。后来换了一台装有Python 3.X的电脑依然出问题。

求助于网络,发现这个类其实是collections模块中的一个类。看来,学习很难摆脱网络环境啊!

这个类是dict的一个子类,重写了一个方法并增加了一个事件变量。在实例化的时候,第一个参数提供给default_factory的初始化函数。这个参数可以是一个类型或者函数,至于是类型这不难理解,其实类型基本上都是工厂函数。但是,有时候我们想用此方法传入一个常量,这个时候就需要自己单独设计一个常量函数或者直接使用lambda表达式。

先看如下的示范:

>>> fromcollections import defaultdict
>>> c1 =defaultdict(int)
>>>c1.get(123)
>>>c1.get('abc')
>>> defConst():
return 23
>>> c2 =defaultdict(Const)
>>>c2.get(123)
>>> c2
defaultdict(<functionConst at 0x000001D7E26F58C8>, {})
>>>c2[123]
23
>>>c2['abc']
23
>>>c1[123]
0

从上面可以看出,这种方式可以为一个字典对象不存在的key自动给出一个默认的value。用上面的这种方式自然是可以实现value为某个常量,但是使用lambda可以使得代码更为简洁:

>>> c3 =defaultdict(lambda :123)
>>>c3[12]
123

在最近遇到的使用场景中,这种方法能够让代码变得简洁不少,而习惯后的代码可读性也没有任何影响。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
利用Python实现颜色色值转换的小工具
Oct 27 Python
Pycharm学习教程(3) 代码运行调试
May 03 Python
浅谈numpy数组中冒号和负号的含义
Apr 18 Python
Python numpy 点数组去重的实例
Apr 18 Python
python实现超市扫码仪计费
May 30 Python
Python数据分析:手把手教你用Pandas生成可视化图表的教程
Dec 15 Python
python3实现字符串操作的实例代码
Apr 16 Python
浅析Python与Mongodb数据库之间的操作方法
Jul 01 Python
django框架实现模板中获取request 的各种信息示例
Jul 01 Python
python读取多层嵌套文件夹中的文件实例
Feb 27 Python
matplotlib基础绘图命令之imshow的使用
Aug 13 Python
python用Configobj模块读取配置文件
Sep 26 Python
Python3 实现随机生成一组不重复数并按行写入文件
Apr 09 #Python
python生成不重复随机数和对list乱序的解决方法
Apr 09 #Python
解决Python的str强转int时遇到的问题
Apr 09 #Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
Apr 09 #Python
Python序列循环移位的3种方法推荐
Apr 09 #Python
python中将一个全部为int的list 转化为str的list方法
Apr 09 #Python
python修改list中所有元素类型的三种方法
Apr 09 #Python
You might like
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
用Socket发送电子邮件
2006/10/09 PHP
PHP操作数组的一些函数整理介绍
2011/07/17 PHP
详解 PHP加密解密字符串函数附源码下载
2015/12/18 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
PHP单例模式数据库连接类与页面静态化实现方法
2019/03/20 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
php弹出提示框的是实例写法
2019/09/26 PHP
利用js跨页面保存变量做菜单的方法
2008/01/17 Javascript
基于jquery的cookie的用法
2011/01/10 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
利用jQuery实现可以编辑的表格
2014/05/26 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
2014/08/22 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
jquery表单插件Autotab使用方法详解
2016/06/24 Javascript
Sublime Text新建.vue模板并高亮(图文教程)
2017/10/26 Javascript
node 命令方式启动修改端口的方法
2018/05/12 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
2019/11/26 Javascript
在Python中操作时间之strptime()方法的使用
2020/12/30 Python
python删除列表内容
2015/08/04 Python
对python的输出和输出格式详解
2018/12/08 Python
python后端接收前端回传的文件方法
2019/01/02 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
python实现不同数据库间数据同步功能
2021/02/25 Python
《台湾的蝴蝶谷》教学反思
2014/02/20 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
应届生求职自荐信
2014/07/04 职场文书
办理信用卡工作证明
2014/09/30 职场文书
化工见习报告范文
2014/10/31 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android
MySQL时区造成时差问题
2022/04/13 MySQL
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android