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实现socket客户端和服务端简单示例
Feb 24 Python
Python BeautifulSoup中文乱码问题的2种解决方法
Apr 22 Python
MySQLdb ImportError: libmysqlclient.so.18解决方法
Aug 21 Python
python常规方法实现数组的全排列
Mar 17 Python
使用Python3编写抓取网页和只抓网页图片的脚本
Aug 20 Python
Python简单实现TCP包发送十六进制数据的方法
Apr 16 Python
Python计时相关操作详解【time,datetime】
May 26 Python
Django中的Model操作表的实现
Jul 24 Python
在PyCharm中实现关闭一个死循环程序的方法
Nov 29 Python
使用Python实现将list中的每一项的首字母大写
Jun 11 Python
Python中的 sort 和 sorted的用法与区别
Aug 10 Python
Python3使用xlrd、xlwt处理Excel方法数据
Feb 28 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 定界符格式引起的错误
2011/05/24 PHP
PHP中使用cURL实现Get和Post请求的方法
2013/03/13 PHP
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
laravel创建类似ThinPHP中functions.php的全局函数
2016/11/26 PHP
基于php实现的验证码小程序
2016/12/13 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
2016/12/23 PHP
javascript实现的距离现在多长时间后的一个格式化的日期
2009/10/29 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
JavaScript定时器和优化的取消定时器方法
2015/07/03 Javascript
同步文本框内容JS代码实现
2016/08/04 Javascript
详解获取jq ul第一个li定位的四种解决方案
2016/11/23 Javascript
JavaScript观察者模式(publish/subscribe)原理与实现方法
2017/03/30 Javascript
cordova入门基础教程及使用中遇到的一些问题总结
2017/11/14 Javascript
webuploader分片上传的实现代码(前后端分离)
2018/09/10 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
2019/03/29 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
python的多重继承的理解
2017/08/06 Python
java中的控制结构(if,循环)详解
2019/06/26 Python
手把手教你pycharm专业版安装破解教程(linux版)
2019/09/26 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
Scrapy 配置动态代理IP的实现
2020/09/28 Python
python中字符串的编码与解码详析
2020/12/03 Python
Python如何实现感知器的逻辑电路
2020/12/25 Python
canvas 实现 github404动态效果的示例代码
2017/11/15 HTML / CSS
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
2020/04/07 HTML / CSS
Intimissimi德国网上商店:意大利知名内衣品牌
2018/04/03 全球购物
双立人加拿大官网:Zwilling加拿大
2020/08/10 全球购物
Happy Plugs官网:瑞典无线耳机品牌
2020/07/16 全球购物
体育教师自荐信范文
2013/12/16 职场文书
企业消防安全制度
2014/02/02 职场文书
户外拓展活动方案
2014/02/11 职场文书
肖申克救赎观后感
2015/06/02 职场文书
运动会宣传稿100字
2015/07/23 职场文书
小学二年级语文教学反思
2016/03/03 职场文书
HR必备:超全面的薪酬待遇管理方案!
2019/07/12 职场文书
Win11远程连接不上怎么办?Win11远程桌面用不了的解决方法
2022/08/05 数码科技