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实现把回车符\r\n转换成\n
Apr 23 Python
python3连接MySQL数据库实例详解
May 24 Python
Python实现将Excel转换成xml的方法示例
Aug 25 Python
Python logging模块用法示例
Aug 28 Python
python批量赋值操作实例
Oct 22 Python
Python实现的读取文件内容并写入其他文件操作示例
Apr 09 Python
numpy concatenate数组拼接方法示例介绍
May 27 Python
Python学习笔记之变量、自定义函数用法示例
May 28 Python
python调用自定义函数的实例操作
Jun 26 Python
python队列原理及实现方法示例
Nov 27 Python
详解用Python爬虫获取百度企业信用中企业基本信息
Jul 02 Python
Python3+Appium安装及Appium模拟微信登录方法详解
Feb 16 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
分享8个最佳的代码片段在线测试网站
2013/06/29 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
2015/01/22 PHP
PHP+jQuery+Ajax实现用户登录与退出
2015/04/27 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
Javascript的常规数组和关联数组对比小结
2012/05/24 Javascript
js将long日期格式转换为标准日期格式实现思路
2013/04/07 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
JavaScript Split()方法
2015/12/18 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
2016/03/25 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
浅谈原型对象的常用开发模式
2017/07/22 Javascript
微信小程序自定义模态对话框实例详解
2017/08/16 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
2018/07/10 Javascript
微信小程序使用component自定义toast弹窗效果
2018/11/27 Javascript
玩转Koa之核心原理分析
2018/12/29 Javascript
python正则表达式修复网站文章字体不统一的解决方法
2013/02/21 Python
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
python正则实现计算器功能
2017/12/14 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
Python基于TCP实现会聊天的小机器人功能示例
2018/04/09 Python
python 读取Linux服务器上的文件方法
2018/12/27 Python
简单了解python的内存管理机制
2019/07/08 Python
python retrying模块的使用方法详解
2019/09/25 Python
python实现智能语音天气预报
2019/12/02 Python
python绘制趋势图的示例
2020/09/17 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
Html5实现首页动态视频背景的示例代码
2019/09/25 HTML / CSS
html5中嵌入视频自动播放的问题解决
2020/05/25 HTML / CSS
英国领先的互联网葡萄酒礼品商:Vintage Wine & Port
2019/05/24 全球购物
中医专业应届生求职信
2013/11/17 职场文书
人民调解协议书范本
2014/10/11 职场文书
2015年上半年信访工作总结
2015/03/30 职场文书
详细介绍Java中的CyclicBarrier
2022/04/13 Java/Android