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中用于处理字符串的center()方法
May 18 Python
python更新列表的方法
Jul 28 Python
基于Django的python验证码(实例讲解)
Oct 23 Python
Selenium 模拟浏览器动态加载页面的实现方法
May 16 Python
一百多行python代码实现抢票助手
Sep 25 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
Dec 11 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
Dec 28 Python
Django REST Framework序列化外键获取外键的值方法
Jul 26 Python
Django项目中实现使用qq第三方登录功能
Aug 13 Python
Python转换itertools.chain对象为数组的方法
Feb 07 Python
Python urllib2运行过程原理解析
Jun 04 Python
python glom模块的使用简介
Apr 13 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支持多种格式图片上传(支持jpg、png、gif)
2011/11/03 PHP
CodeIgniter生成网站sitemap地图的方法
2013/11/13 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
2014/07/04 PHP
php微信开发之上传临时素材
2016/06/24 PHP
laravel 实现向公共模板中传值 (view composer)
2019/10/22 PHP
PHP 扩展Memcached命令用法实例总结
2020/06/04 PHP
javaScript NameSpace 简单说明介绍
2013/07/18 Javascript
jQuery制作仿Mac Lion OS滚动条效果
2015/02/10 Javascript
探讨JavaScript标签位置的存放与功能有无关系
2016/01/15 Javascript
轻松理解vue的双向数据绑定问题
2017/10/30 Javascript
vue中阻止click事件冒泡,防止触发另一个事件的方法
2018/02/08 Javascript
node中的session的具体使用
2018/09/14 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
JS实现关闭小广告特效
2021/01/29 Javascript
js实现坦克大战游戏
2020/02/24 Javascript
js实现点赞效果
2020/03/16 Javascript
使用Python实现BT种子和磁力链接的相互转换
2015/11/09 Python
python结合shell查询google关键词排名的实现代码
2016/02/27 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
python随机取list中的元素方法
2018/04/08 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
Python中的字符串切片(截取字符串)的详解
2019/05/15 Python
python爬虫之自制英汉字典
2019/06/24 Python
springboot配置文件抽离 git管理统 配置中心详解
2019/09/02 Python
Python爬虫回测股票的实例讲解
2021/01/22 Python
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
Paul Smith英国官网:英国国宝级时装品牌
2019/03/21 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
加拿大拼图大师:Puzzle Master
2020/12/28 全球购物
卫校中专生的自我评价
2014/01/15 职场文书
婚礼主持词开场白
2014/03/13 职场文书
2015新年联欢晚会开场白
2014/12/14 职场文书
法人身份证明书
2015/06/18 职场文书
《鸡兔同笼》教学反思
2016/02/19 职场文书
教你如何使用Python开发一个钉钉群应答机器人
2021/06/21 Python