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中移动目录结构的方法
Jan 31 Python
Python脚本实现自动发带图的微博
Apr 27 Python
python删除服务器文件代码示例
Feb 09 Python
Python实现统计给定列表中指定数字出现次数的方法
Apr 11 Python
将python代码和注释分离的方法
Apr 21 Python
PyQt5+requests实现车票查询工具
Jan 21 Python
Python基本socket通信控制操作示例
Jan 30 Python
VSCode Python开发环境配置的详细步骤
Feb 22 Python
python实现QQ空间自动点赞功能
Apr 09 Python
Python内存管理实例分析
Jul 10 Python
python实现读取类别频数数据画水平条形图案例
Apr 24 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
Nov 19 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
SMARTY学习手记
2007/01/04 PHP
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
2011/04/17 PHP
第三章 php操作符与控制结构代码
2011/12/30 PHP
如何用PHP来实现一个动态Web服务器
2015/07/29 PHP
Yii2 rbac权限控制之rule教程详解
2016/06/23 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
javascript中对对层的控制
2006/12/29 Javascript
ext jquery 简单比较
2010/04/07 Javascript
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
2015/02/13 Javascript
浅谈JavaScript的事件
2015/02/27 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
2016/09/05 Javascript
简单实现js浮动框
2016/12/13 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
Nodejs之TCP服务端与客户端聊天程序详解
2017/07/07 NodeJs
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
2018/02/06 Javascript
浅析Visual Studio Code断点调试Vue
2018/02/27 Javascript
vue异步加载高德地图的实现
2018/06/19 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
Python获取文件ssdeep值的方法
2014/10/05 Python
Python实现从log日志中提取ip的方法【正则提取】
2018/03/31 Python
django rest framework 数据的查找、过滤、排序的示例
2018/06/25 Python
Django重设Admin密码过程解析
2020/02/10 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
Asics日本官网:鬼冢八喜郎创立的跑鞋运动品牌
2017/10/18 全球购物
事业单位接收函
2014/01/10 职场文书
辩论赛主持词
2014/03/18 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
医院见习报告范文
2014/11/03 职场文书
公司股份合作协议书
2014/12/07 职场文书
《月歌。》宣布制作10周年纪念剧场版《RABBITS KINGDOM THE MOVIE》
2022/04/02 日漫