一、lambda表达式形式

lambda后面跟一个或多个参数,紧跟一个冒号,以后是一个表达式。冒号前是参数,冒号后是返回值。

lambda是一个表达式而不是一个语句。

lambda表达式可以出现在Python语法不允许def出现的地方。

lambda表达式返回一个值。

二、与def的区别

lambda用来编写简单的函数,不会再重复利用的函数。

而def用来处理强大的任务。

三、举例

1、

fun = lambda x,y,z : x + y + z
print fun(1, 2, 3)
输出结果:6
2、

fun = [(lambda n : i + n) for i in range(10)]
print fun[3](4)
print fun[4](4)
输出结果13,13,并非期望的7,8
解析:fun为一个函数数组,i为全局变量,即为9。fun[3](4)指调用fun中第三个函数,n赋值为3,所以结果为13。同理可得fun[4](4)值为13。

改为如下:

fun = [(lambda n,i = i : i + n) for i in range(10)]
print fun[3](4)
print fun[4](4)
输出结果为:7,8。为想要的结果。

3、如果使用过filter/map/reduce这几个函数,就会知道lambda表达式真的在匿名函数的写法上非常省时省力。

print filter(lambda x : x % 2 == 0, range(10))
print map(lambda x, y : x * y, range(1,4), range(1,4))
print reduce(lambda x, y : x + y, range(101))
输出结果:
[0, 2, 4, 6, 8]
[1, 4, 9]
5050
---------------------
作者:BIT_SKY
来源:CSDN
原文:https://blog.csdn.net/BIT_SKY/article/details/50781806
版权声明:本文为博主原创文章,转载请附上博文链接!

Python中lambda表达式的更多相关文章

  1. Python中Lambda表达式使用

    软件环境 Python: 2.7.13; win10 Lambda描述 python 使用 lambda 表达式来创建匿名函数 lambda只是一个表达式,函数体比def简单很多 lambda的主体是 ...

  2. Python中lambda表达式的应用

    lambda表达式 Python中定义了一个匿名函数叫做lambda表达式,个人理解实现的作用就是代替一些简单的函数,使得代码看上去更简洁并且可读性高.举个例子,我们有一个元组列表[(‘a’,1),( ...

  3. python中lambda表达式应用

    对于简单的函数,也存在一种简便的表示方式,即:lambda表达式 #普通函数1 def func(a): return a+1 print 'test1_func0:',func(1000)4#lam ...

  4. Python中lambda表达式学习

    lambda只是一个表达式,函数体比def简单很多. lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去. lambda表达式是起到一个函数速写的作用.允 ...

  5. Python 中Lambda 表达式 实例解析

    Lambda 表达式 lambda表达式是一种简洁格式的函数.该表达式不是正常的函数结构,而是属于表达式的类型.而且它可以调用其它函数. 1.基本格式: lambda 参数,参数...:函数功能代码 ...

  6. python中lambda表达式中自由变量的坑,因为for循环结束了 变量还保存着,详见关于for循环的随笔

    http://blog.csdn.net/u010949971/article/details/70045537

  7. python中lambda

    lambda_expr ::= "lambda" [parameter_list]: expression python中lambda可以理解为一个匿名函数,它的要求是函数的运算部 ...

  8. python 之Lambda表达式

    python 的 lambda 表达式 python写一些执行脚本时,使用lambda就可以省下定义函数的过程,比如说我们只是需要写个简单的脚本来管理服务器时,我们就不用专门定义函数然后再写调用,使用 ...

  9. 14.在Python中lambda函数是什么

    在Python中lambda函数是什么? It is a single expression anoymous function often used as inline function. lamb ...

随机推荐

  1. 一段上传图片预览JS脚本,Input file图片预览的实现

    在深圳做项目的时候,需要一个用户上传头像预览的功能!是在网上找了好多,都不太满意.要么是flash的,要么是Ajax上传后返回图片路径的,要么压根就是不能用的.幸运的是在这个项目以前有人写过一个图片预 ...

  2. 3.Dynamic Layout 动态布局。在槽中处理布局

    在应用程序中,一个界面的布局基本都是固定的. 在这个实例中,我们把管理布局的代码放在槽中.这样点击一次按钮,触发槽.布局改变一次.这样就成为一个动态布局. (一) 水平和竖直布局改变 横向: 纵向: ...

  3. Django Rest Framework框架 ---- url控制器

    Django Rest Framework框架 ---- url控制器

  4. Reading Text-based Files In ASP.NET

    Friday, July 17, 2015 1:43 PM Every time I need to work with the contents of text-based files in an ...

  5. WOX快速搜索

    WOX wox和mac上的Aflred类似,虽然在功能上稍有逊色,但是还是可以给我们使用windows电脑带来很多福利.首先你不需要在桌面放一堆应用软件的快捷方式,桌面可以非常干净整洁,想要打开某个应 ...

  6. Oracle 写存储过程的一个模板还有一些基本的知识点

    我很少用Oracle,也算新手,不过其实入手没有那么难,下面只是一个基本知识,高手绕道,其实数据库基本是相同的,这里提供都是基本知识点 有一个Oracle溢出的问题,容易让新手怀疑到无所怀疑,其实就是 ...

  7. Spring Websocket与sockJS结合实现

    首先了解Stomp协议:简单的消息文本协议 采用广播机制与队列,可以和Activemq结合使用 Stomp协议学习与实战 http://diaocow.iteye.com/blog/1725186 S ...

  8. 门面(Facade)模式

    门面(Facade)模式  也叫 外观模式. 外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得子系统更加容易使用 /* * 门面(Facade)角色:客户端可以 ...

  9. GCC 显示所有的warning option

    此事需求的来源是有要求调查,gcc中的那些warning是有问题的,代码必须要修改,那些事需要确认的,就要显示所有的warning选项是什么 查了下,方法如下 显示所有的warning和warning ...

  10. SqlServer给一个表增加多个字段语法

    添加字段语法 alter table table_name add column_name +字段类型+ 约束条件 给一个表增加多个字段: use NatureData go alter table ...