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迭代器的使用方法实例
Nov 21 Python
使用Node.js和Socket.IO扩展Django的实时处理功能
Apr 20 Python
python使用两种发邮件的方式smtp和outlook示例
Jun 02 Python
Python实现的爬虫刷回复功能示例
Jun 07 Python
tensorflow 获取变量&amp;打印权值的实例讲解
Jun 14 Python
华为校园招聘上机笔试题 扑克牌大小(python)
Apr 22 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
Jul 23 Python
python argparser的具体使用
Nov 10 Python
python3.7.3版本和django2.2.3版本是否可以兼容
Sep 01 Python
python3访问字典里的值实例方法
Nov 18 Python
解决python 输出到csv 出现多空行的情况
Mar 24 Python
Python 中的Sympy详细使用
Aug 07 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模拟asp中的XmlHttpRequest实现http请求的代码
2011/03/24 PHP
解析php dirname()与__FILE__常量的应用
2013/06/24 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
2016/01/07 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
php+mysql实现的无限分类方法类定义与使用示例
2020/05/27 PHP
JS版网站风格切换实例代码
2008/10/06 Javascript
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
JavaScript在多浏览器下for循环的使用方法
2012/11/07 Javascript
js函数模拟显示桌面.scf程序示例
2014/04/20 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
Vue.js移动端左滑删除组件的实现代码
2017/09/08 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
浅谈jquery fullpage 插件增加头部和版权的方法
2018/03/20 jQuery
js删除数组中某几项的方法总结
2019/01/16 Javascript
vuex中store存储store.commit和store.dispatch的用法
2020/07/24 Javascript
全面解析JavaScript Module模式
2020/07/24 Javascript
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
用Python操作字符串之rindex()方法的使用
2015/05/19 Python
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
Python算法应用实战之队列详解
2017/02/04 Python
python使用webdriver爬取微信公众号
2018/08/31 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
python+mysql实现教务管理系统
2019/02/20 Python
详解python爬虫系列之初识爬虫
2019/04/06 Python
Django为窗体加上防机器人的验证码功能过程解析
2019/08/14 Python
Python类如何定义私有变量
2020/02/03 Python
python 通过exifread读取照片信息
2020/12/24 Python
Python Selenium库的基本使用教程
2021/01/04 Python
windows系统Tensorflow2.x简单安装记录(图文)
2021/01/18 Python
Nº21官方在线商店:numeroventuno.com
2019/09/26 全球购物
数控技术专科生自我评价
2014/01/08 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python