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实现的一个火车票转让信息采集器
Jul 09 Python
Python中if __name__ == '__main__'作用解析
Jun 29 Python
使用python实现rsa算法代码
Feb 17 Python
Pandas 按索引合并数据集的方法
Nov 15 Python
python将处理好的图像保存到指定目录下的方法
Jan 10 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
Jun 28 Python
python Manager 之dict KeyError问题的解决
Dec 21 Python
Python读取YAML文件过程详解
Dec 30 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
Apr 16 Python
keras分类模型中的输入数据与标签的维度实例
Jul 03 Python
matplotlib 画双轴子图无法显示x轴的解决方法
Jul 27 Python
Python爬虫实战之爬取携程评论
Jun 02 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
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
PHP实现图片旋转效果实例代码
2014/10/01 PHP
php中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
php验证手机号码
2015/11/11 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
File文件控件,选中文件(图片,flash,视频)即立即预览显示
2009/04/09 Javascript
jquery imgareaselect 使用利用js与程序结合实现图片剪切
2009/07/30 Javascript
基于jquery的jqDnR拖拽溢出的修改
2011/02/12 Javascript
javascript自启动函数的问题探讨
2013/10/05 Javascript
js采用map取到id集合组并且实现点击一行选中一行
2013/12/16 Javascript
js Dialog 去掉右上角的X关闭功能
2014/04/23 Javascript
jQuery实现径向动画菜单效果
2015/07/17 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
Node.js开发教程之基于OnceIO框架实现文件上传和验证功能
2016/11/30 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
使用JavaScript实现点击循环切换图片效果
2017/09/03 Javascript
Node.Js生成比特币地址代码解析
2018/04/21 Javascript
GOJS+VUE实现流程图效果
2018/12/01 Javascript
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
JavaScript canvas绘制渐变颜色的矩形
2020/02/18 Javascript
对Python 窗体(tkinter)文本编辑器(Text)详解
2018/10/11 Python
python实现指定ip端口扫描方式
2019/12/17 Python
Python字符串、列表、元组、字典、集合的补充实例详解
2019/12/20 Python
python爬虫把url链接编码成gbk2312格式过程解析
2020/06/08 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
几道PHP的面试题
2012/05/19 面试题
环保建议书400字
2014/05/14 职场文书
2014县委书记党的群众路线教育实践活动对照检查材料思想汇报
2014/09/22 职场文书
社区工作者个人总结
2015/02/28 职场文书
警告通知
2015/04/25 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书
市场营销计划书
2019/04/24 职场文书
vue实现书本翻页动画效果实例详解
2022/04/08 Vue.js