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简单实现基于SSL的IRC bot实例
Jun 15 Python
Python构建XML树结构的方法示例
Jun 30 Python
python Crypto模块的安装与使用方法
Dec 21 Python
Java及python正则表达式详解
Dec 27 Python
Python实现的视频播放器功能完整示例
Feb 01 Python
解决matplotlib库show()方法不显示图片的问题
May 24 Python
Python3使用SMTP发送带附件邮件
Jun 16 Python
python多线程下信号处理程序示例
May 31 Python
python 的 scapy库,实现网卡收发包的例子
Jul 23 Python
python破解bilibili滑动验证码登录功能
Sep 11 Python
python 实现将list转成字符串,中间用空格隔开
Dec 25 Python
python编写函数注意事项总结
Mar 29 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
理解PHP中的stdClass类
2014/04/18 PHP
PHP获取音频文件的相关信息
2015/06/22 PHP
css动画效果之animation的常用样式
2021/03/09 HTML / CSS
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
IE6图片加载的一个BUG解决方法
2010/07/13 Javascript
jQuery拖动图片删除示例
2013/05/10 Javascript
Table冻结表头示例代码
2013/08/20 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
IE与FF下javascript获取网页及窗口大小的区别详解
2014/01/14 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
浅谈jquery事件处理
2015/04/24 Javascript
javascript中Function类型详解
2015/04/28 Javascript
在JavaScript的正则表达式中使用exec()方法
2015/06/16 Javascript
JS文字球状放大效果代码分享
2015/08/19 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
JS设置cookie、读取cookie
2016/02/24 Javascript
功能强大的Bootstrap使用手册(一)
2016/08/02 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
手把手教你 CKEDITOR 4 实现Dialog 内嵌 IFrame操作详解
2019/06/18 Javascript
vue $router和$route的区别详解
2020/12/02 Vue.js
实现python版本的按任意键继续/退出
2016/09/26 Python
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
python利用requests库模拟post请求时json的使用教程
2018/12/07 Python
使用python3构建文件传输的方法
2019/02/13 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
python的pyecharts绘制各种图表详细(附代码)
2019/11/11 Python
CSS3 box-sizing属性详解
2016/11/15 HTML / CSS
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
澳大利亚领先的在线药房:Pharmacy Online(有中文站)
2020/02/22 全球购物
金士达面试非笔试
2012/03/14 面试题
优秀教师单行材料
2014/12/16 职场文书
长城导游词
2015/01/30 职场文书
小学英语教师研修感悟
2015/11/18 职场文书
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
2021/06/07 Python
Python+DeOldify实现老照片上色功能
2022/06/21 Python