这篇文章主要介绍了Python中defaultdict与lambda表达式用法,在这里分享给大家,需要的朋友可以参考下

本文实例讲述了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(, {})

>>>c2[123]

23

>>>c2['abc']

23

>>>c1[123]

0

从上面可以看出,这种方式可以为一个字典对象不存在的key自动给出一个默认的value。用上面的这种方式自然是可以实现value为某个常量,但是使用lambda可以使得代码更为简洁:

>>> c3 =defaultdict(lambda :123)

>>>c3[12]

123

在最近遇到的使用场景中,这种方法能够让代码变得简洁不少,而习惯后的代码可读性也没有任何影响。

相关推荐:

Python中的defaultdict模块和namedtuple模块的简单入门指南

python defaultdict函数_Python中defaultdict与lambda表达式用法相关推荐

  1. python local函数_python中的函数

    函数 一.函数的定义 def是可执行的代码.def创建了一个对象并将其赋值给某一变量名.def语句是实时执行的,即:def在运行时才进行评估,而在def之中的代码在函数调用后才会评估.函数本身就是一个 ...

  2. python有趣函数_python中有趣的函数

    filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决 ...

  3. python nums函数_Python中的内置函数

    Python中有很多内置函数,不需要我们调用模块可以直接使用,而且都是常用函数的封装,下面我们来看看Python中的内置函数都有那些. 1.abs() abs()是绝对值函数,把一个负数转化为正数,数 ...

  4. python sep函数_Python中带有print()函数的sep参数

    python sep函数 sep parameter stands for separator, it uses with the print() function to specify the se ...

  5. pythonlambda回调函数_Python中如何借助lambda来给回调函数传参

    开门见山,直接从一个例子开始,假设我们在写一个GUI界面,界面上有个按钮,其功能是点击它就能得到物品A的详细描述,对应的代码如下 detailButton.clicked.connect(self.s ...

  6. python dump函数_python中实现php的var_dump函数功能

    最近在做python的web开发(原谅我的多变,好东西总想都学着...node.js也是),不过过程中总遇到些问题,不管是web.py还是django,开发起来确实没用php方便,毕竟存在的时间比较短 ...

  7. python round函数_python中round函数如何使用

    round函数很简单,对浮点数进行近似取值,保留几位小数.比如 >>> round(10.0/3, 2) 3.33 >>> round(20/7) 3 第一个参数是 ...

  8. python remove函数_python中remove函数的用法是什么?

    python中remove函数的用法是什么? python中remove函数的用法: 描述 remove() 函数用于移除列表中某个值的第一个匹配项. 语法 remove()方法语法: list.re ...

  9. python array函数_Python 中的range()函数与array()函数

    我们在Python中存在一个非常好用的range()与array()函数,下面作用法简要介绍. 一.range()函数 >>> range(1,10) -->不包括10 [1, ...

最新文章

  1. OPPOr7sm恢复出厂设置一直卡在开机界面
  2. 安装RRDtool 1.4.5
  3. VTK:标签放置映射器用法实战
  4. 学习Python最好的途径——激发自己的学习兴趣!
  5. 腾讯 PB 级大数据计算如何做到秒级?
  6. 如何利用计算机完成科研项目,承担科研项目情况怎样填写
  7. GARFIELD@12-30-2004
  8. 【正则化】Label Smoothing详解
  9. shell每日一句(3)
  10. UVaOJ 10328 Coin Toss
  11. 报错’TypeError: only integer scalar arrays can be converted to a scalar index‘
  12. 南华大学c语言实验答案,南华大学C语言习题答案2012年版
  13. hive与mysql对比之max、group by、日志分析
  14. Polybase要求安装orcale jre 7更新 51或更高版本如何解决
  15. 记一次简单的burpsuite弱口令爆破实验
  16. you need to install the latest version of Visual Studio
  17. ZY-Player安静看电影
  18. 13.3 跳格子游戏
  19. Selenium自动化测试网页加载太慢怎么办
  20. 全景虚拟漫游实现(three.js)

热门文章

  1. Oracle修改表空间大小
  2. 合成艺术字二 :使用的透明类以及所用的颜色选择器JS(完整事列源码)
  3. python-字典方法
  4. 2017年网易校招题 买苹果
  5. unity android 分包,Unity以分包(obb)形式集成到安卓原生 我慢慢填坑
  6. python算法实现源码_Python实现七个基本算法
  7. sqlite查询乘以某列如果是null就换成_大数据之Hive group by with cube/rollup分组查询...
  8. 鱼c论坛python课后作业_三日速成python?打工人,小心钱包,别当韭菜
  9. 医院计算机管理工资,医院工资管理系统的设计与开发
  10. ajax实现重新绘图,如何画Flot AJAX更新图