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 相关文章推荐
phpsir 开发 一个检测百度关键字网站排名的python 程序
Sep 17 Python
使用beaker让Facebook的Bottle框架支持session功能
Apr 23 Python
利用Python生成文件md5校验值函数的方法
Jan 10 Python
基于ID3决策树算法的实现(Python版)
May 31 Python
python实现报表自动化详解
Nov 16 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
Dec 19 Python
Python中时间datetime的处理与转换用法总结
Feb 18 Python
Python异步操作MySQL示例【使用aiomysql】
May 16 Python
Python 中使用 PyMySQL模块操作数据库的方法
Nov 10 Python
使用Python实现牛顿法求极值
Feb 10 Python
Python3如何使用多线程升程序运行速度
Aug 11 Python
python 批量下载bilibili视频的gui程序
Nov 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中的一些常用函数收集
2015/05/26 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
Yii2框架可逆加密简单实现方法
2017/08/25 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
2020/07/08 PHP
JavaScript Event学习第六章 事件的访问
2010/02/07 Javascript
根据json字符串生成Html的一种方式
2013/01/09 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
jQuery下的动画处理总结
2013/10/10 Javascript
jquery datepicker参数介绍和示例
2014/04/15 Javascript
自定义刻度jQuery进度条及插件
2015/09/02 Javascript
Bootstrap项目实战之子栏目资讯内容
2016/04/25 Javascript
详解webpack分包及异步加载套路
2017/06/29 Javascript
Vue动态组件实例解析
2017/08/20 Javascript
详解vue项目的构建,打包,发布全过程
2017/11/23 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
Bootstrap4 gulp 配置详解
2019/01/06 Javascript
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
Python实现类的创建与使用方法示例
2017/07/25 Python
在Python文件中指定Python解释器的方法
2019/02/18 Python
Python将字符串常量转化为变量方法总结
2019/03/17 Python
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
2019/12/18 Python
python中如何使用insert函数
2020/01/09 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
2020/02/12 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
python opencv肤色检测的实现示例
2020/12/21 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
园艺专业毕业生求职信
2014/09/02 职场文书
关爱空巢老人感想
2015/08/11 职场文书
2016年优秀班主任先进事迹材料
2016/02/26 职场文书
财务会计个人原因辞职信
2019/06/21 职场文书
红灯733-1型14管5波段半导体收音机
2021/04/22 无线电
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸