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中type的构造函数参数含义说明
Jun 21 Python
Python中内建函数的简单用法说明
May 05 Python
Python多维/嵌套字典数据无限遍历的实现
Nov 04 Python
对pandas的dataframe绘图并保存的实现方法
Aug 05 Python
python实现守护进程、守护线程、守护非守护并行
May 05 Python
python样条插值的实现代码
Dec 17 Python
使用python telnetlib批量备份交换机配置的方法
Jul 25 Python
python函数enumerate,operator和Counter使用技巧实例小结
Feb 22 Python
Python利用PyPDF2库获取PDF文件总页码实例
Apr 03 Python
python用tkinter实现一个gui的翻译工具
Oct 26 Python
Python图像识别+KNN求解数独的实现
Nov 13 Python
用python批量解压带密码的压缩包
May 31 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 连接mssql数据库 初学php笔记
2010/03/01 PHP
新页面打开实际尺寸的图片
2006/08/25 Javascript
利用404错误页面实现UrlRewrite的实现代码
2008/08/20 Javascript
Js 订制自己的AlertBox(信息提示框)
2009/01/09 Javascript
解析javascript 实用函数的使用详解
2013/05/10 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
微信JS-SDK坐标位置如何转换为百度地图坐标
2016/07/04 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
使用nodejs下载风景壁纸
2017/02/05 NodeJs
Nginx 配置多站点vhost 的方法
2018/01/07 Javascript
js捆绑TypeScript声明文件的方法教程
2018/04/13 Javascript
通过vue-cli3构建一个SSR应用程序的方法
2018/09/13 Javascript
微信小程序实现省市区三级地址选择
2020/06/21 Javascript
TypeScript中的方法重载详解
2019/04/12 Javascript
vue递归组件实战之简单树形控件实例代码
2019/08/27 Javascript
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
Vue实现todo应用的示例
2021/02/20 Vue.js
[49:27]LGD vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python实现目录树生成示例
2014/03/28 Python
Python实现获取操作系统版本信息方法
2015/04/08 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
2018/12/10 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
CSS3中的常用选择器使用示例整理
2016/06/13 HTML / CSS
波兰香水和化妆品购物网站:Notino.pl
2017/11/07 全球购物
抽象类和接口的区别
2012/09/19 面试题
房屋产权证明书
2014/10/15 职场文书
赢在中国观后感
2015/06/02 职场文书
Django操作cookie的实现
2021/05/26 Python
解决Maven项目中 Invalid bound statement 无效的绑定问题
2021/06/15 Java/Android
python解析照片拍摄时间进行图片整理
2022/07/23 Python