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 条件判断的缩写方法
Sep 06 Python
Python接收Gmail新邮件并发送到gtalk的方法
Mar 10 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
Jan 24 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
Apr 26 Python
解决已经安装requests,却依然提示No module named requests问题
May 18 Python
python指定写入文件时的编码格式方法
Jun 07 Python
Python实现处理逆波兰表达式示例
Jul 30 Python
python打印直角三角形与等腰三角形实例代码
Oct 20 Python
Python安装依赖(包)模块方法详解
Feb 14 Python
jupyter 实现notebook中显示完整的行和列
Apr 09 Python
python3.9实现pyinstaller打包python文件成exe
Dec 13 Python
如何用 Python 制作 GitHub 消息助手
Feb 20 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连接局域网MYSQL数据库的简单实例
2013/08/26 PHP
php不使用插件导出excel的简单方法
2014/03/04 PHP
PHP实现微信公众平台音乐点播
2014/03/20 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
新浪刚打开页面出来的全屏广告代码
2007/04/02 Javascript
使用jquery为table动态添加行的实现代码
2011/03/30 Javascript
js 幻灯片的实现
2011/12/06 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
在JavaScript中使用timer示例
2014/05/08 Javascript
JavaScript计时器示例分析
2015/02/05 Javascript
JavaScript是如何实现继承的(六种方式)
2016/03/31 Javascript
jQuery图片轮播功能实例代码
2017/01/29 Javascript
AngularJs定时器$interval 和 $timeout详解
2017/05/25 Javascript
微信小程序三级联动选择器使用方法
2020/05/19 Javascript
Node.js Buffer用法解读
2018/05/18 Javascript
vue组件开发之slider组件使用详解
2020/08/21 Javascript
Python获取本机所有网卡ip,掩码和广播地址实例代码
2018/01/22 Python
Python 爬取携程所有机票的实例代码
2018/06/11 Python
Python 将Matrix、Dict保存到文件的方法
2018/10/30 Python
python导入pandas具体步骤方法
2019/06/23 Python
使用Python实现正态分布、正态分布采样
2019/11/20 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
2020/01/13 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
函数指针的定义是什么
2016/08/14 面试题
Javascript如何发送一个Ajax请求
2015/01/26 面试题
SOA面试题:如何在SOA中实现松耦合
2013/07/21 面试题
医学实习生自我鉴定
2013/12/12 职场文书
幼儿园中班评语大全
2014/04/17 职场文书
电子信息工程专业自荐书
2014/06/24 职场文书
党员创先争优心得体会
2014/09/11 职场文书
干部作风建设工作总结
2014/10/29 职场文书
2014年医生工作总结
2014/11/21 职场文书
2015年驾驶员工作总结
2015/04/29 职场文书
党校团干班培训心得体会
2016/01/06 职场文书
JAVA SpringMVC实现自定义拦截器
2022/03/16 Python