Python 中的lambda函数介绍


Posted in Python onOctober 10, 2018

Lambda函数,即Lambda 表达式(lambda expression),是一个匿名函数(不存在函数名的函数),Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction)。

一、lambda函数也叫匿名函数,即,函数没有具体的名称。先来看一个最简单例子:

def f(x):
return x**2
print f(4)

Python中使用lambda的话,写成这样

g = lambda x : x**2
print g(4)

二、lambda和普通的函数相比,就是省去了函数名称而已,同时这样的匿名函数,又不能共享在别的地方调用。

其实说的没错,lambda在Python这种动态的语言中确实没有起到什么惊天动地的作用,因为有很多别的方法能够代替lambda。

1. 使用Python写一些执行脚本时,使用lambda可以省去定义函数的过程,让代码更加精简。

2. 对于一些抽象的,不会别的地方再复用的函数,有时候给函数起个名字也是个难题,使用lambda不需要考虑命名的问题。

3. 使用lambda在某些时候让代码更容易理解。

lambda基础

lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值。lambda语句构建的其实是一个函数对象,见证一下:

>>> foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
>>> print filter(lambda x: x % 3 == 0, foo)
[18, 9, 24, 12, 27]
>>> print map(lambda x: x * 2 + 10, foo)
[14, 46, 28, 54, 44, 58, 26, 34, 64]
>>> print reduce(lambda x, y: x + y, foo)
139

在对象遍历处理方面,其实Python的for..in..if语法已经很强大,并且在易读上胜过了lambda。

defaultdict是字典类型,可以为defaultdict设置默认值,可以通过lambda设置默认值。

下面举几个例子:

from collections import *             
x = defaultdict(lambda:0) //默认值是0
print x[0]
y =defaultdict(lambda:defaultdict(lambda:0))//默认值是一个字典,字典的默认值是0
print y[0]
z = defaultdict(lambda:[0,0,0])//默认值是一个列表,[0,0,0].
print z[0]

输出结果:

0
defaultdict(<function <lambda> at0x7f097797af50>, {})
[0, 0, 0]

总结

以上所述是小编给大家介绍的Python lambda函数,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
使用Python中的线程进行网络编程的入门教程
Apr 15 Python
Django基于ORM操作数据库的方法详解
Mar 27 Python
selenium+python实现自动化登录的方法
Sep 04 Python
Python并发:多线程与多进程的详解
Jan 24 Python
python redis 删除key脚本的实例
Feb 19 Python
打包python 加icon 去掉cmd黑窗口方法
Jun 24 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
Jun 27 Python
django中SMTP发送邮件配置详解
Jul 19 Python
python处理大日志文件
Jul 23 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
Sep 10 Python
python 实现简易的记事本
Nov 30 Python
Python中json.dumps()函数的使用解析
May 17 Python
django项目搭建与Session使用详解
Oct 10 #Python
Python 变量类型详解
Oct 10 #Python
Python中几种属性访问的区别与用法详解
Oct 10 #Python
Python的argparse库使用详解
Oct 09 #Python
详解Python3中的迭代器和生成器及其区别
Oct 09 #Python
不知道这5种下划线的含义,你就不算真的会Python!
Oct 09 #Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
Oct 09 #Python
You might like
php输出1000以内质数(素数)示例
2014/02/16 PHP
详解cookie验证的php应用的一种SSO解决办法
2017/10/20 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
初识javascript 文档碎片
2010/07/13 Javascript
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
ajax读取数据后使用jqchart显示图表的方法
2015/06/10 Javascript
jquery判断复选框选中状态以及区分attr和prop
2015/12/18 Javascript
JavaScript中的this机制
2016/01/30 Javascript
jQuery插件实现文字无缝向上滚动效果代码
2016/02/25 Javascript
JS实现点击事件统计的简单实例
2016/07/10 Javascript
angularJS 如何读写缓冲的方法(推荐)
2016/08/06 Javascript
Laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的解决方法
2016/08/18 Javascript
Angular中自定义Debounce Click指令防止重复点击
2017/07/26 Javascript
浅析Vue自定义组件的v-model
2017/11/26 Javascript
vue-cli中使用高德地图的方法示例
2019/03/28 Javascript
基于js判断浏览器是否支持webGL
2020/04/18 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
Python多线程编程(二):启动线程的两种方法
2015/04/05 Python
Python的Flask框架中配置多个子域名的方法讲解
2016/06/07 Python
python中装饰器级连的使用方法示例
2017/09/29 Python
Python3实现简单可学习的手写体识别(实例讲解)
2017/10/21 Python
详解python中的线程
2018/02/10 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
python反编译学习之字节码详解
2019/05/19 Python
python+opencv实现摄像头调用的方法
2019/06/22 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
CSS3 制作旋转的大风车(充满童年回忆)
2013/01/30 HTML / CSS
Linux的主要特性
2016/09/03 面试题
工商管理应届生求职信
2013/10/07 职场文书
留学自荐信的技巧
2013/10/17 职场文书
中药专业大学生医药工作求职信
2013/10/25 职场文书
院领导写的就业推荐信
2014/03/09 职场文书
群众路线党员个人剖析材料
2014/10/08 职场文书
置业顾问岗位职责
2015/02/09 职场文书
英雄儿女观后感
2015/06/09 职场文书
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers