最近刚开始学习python,然后要加几个python的群去学习学习,但是呢有个群的申请栏要求写一个用lambda求1-100的和.....然后悲剧的就是不会啊....然后就没有然后了...

所以去网上找些帖子,学习学习lambda   原作者的帖子 http://blog.csdn.net/delphiwcdj/article/details/5749606,还参考了一些其他的帖子就不放链接了.

首先什么是lambda?

我们知道如果要使用一个函数的话,必须要写函数的定义,如下面的代码

def add(x,y):
return x + y if __name__ == '__main__'
add(x=1, y=2)  //你要使用add函数的话,必须得有add函数的定义才行!

但是有的情况是,我们希望使用一个函数但又不想费神的去为这个函数取一个合适的名字,也就是我们希望使用匿名函数.那么lambda就可以帮我们定义这样的匿名函数对象

其次lambda的规则是什么

1.lambda 后面 和冒号前面的参数列表是没有小括号的.上面例子的x,y

2.冒号后面是函数的实现,会默认return的.上面会默认x+y 等价于 有名函数的return x+y

3.g在这里是被赋值的函数对象,类似函数名的东西. 你也直接使用lambda 例如 (lambda x,y:x+y)(1,2)

4.将它们用在需要封装特殊的,非重用的代码上,用许多小的一行函数不会弄乱代码。

5.lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的函数。 lambda 函数不能包含命令,它们所包含的表达式不能超过一个。不要试图向 lambda 函数中塞入太多的东西;如果你需要更复杂的东西,应该定义一个普通函数,然后想让它多长就多长。

lambda用于函数中的写法和调用技巧(1)  

上面的twice还是一个函数对象  等价于 twice = lambda s : s*2            看来python可以从一个函数中返回另一个函数的地址啊...跟c++差别还是蛮大的.

lambda的应用-计算阶乘的n种方式

第一种方式: 自己写的函数递归调用,没用lambda

接下来就是用lambda的方式了:

剩下的2中计算阶乘的方式中用到了reduce函数,看下面的解释 [英文看不懂,没关系啊,直接看下面的英文里面的例子嘛:]

也就是说reduce有两个参数,第一个是函数对象(这个函数对象必须是两个参数) 第二个是一个列表

先把 1,2传入函数对象,得到结果a

再把a和3传入函数对象,得到结果b

再看一个例子:

那么接下来我们看看剩下的集中用lambda求阶乘的方式吧

第二种方式

第三种方式  (用第三种方式的话只能感慨python的库真他娘的方便啊)

谈谈python中的 lambda的更多相关文章

  1. 【转】python中的lambda函数

    http://www.cnblogs.com/coderzh/archive/2010/04/30/python-cookbook-lambda.html lambda函数也叫匿名函数,即,函数没有具 ...

  2. python中的lambda表达

    C++中的lambda表达式与C++11增加标准库,是一个简短的匿名的可调用对象,编译器会将其转化为一个匿名类的对象.lambda表达式的最大特点就是简短灵活.调用方便.它不须要处理非常复杂的逻辑.通 ...

  3. 在Python中使用lambda高效操作列表的教程

    在Python中使用lambda高效操作列表的教程 这篇文章主要介绍了在Python中使用lambda高效操作列表的教程,结合了包括map.filter.reduce.sorted等函数,需要的朋友可 ...

  4. 关于Python中的lambda

    lambda是Python编程语言中使用频率较高的一个关键字.那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多.这里,我们通过阅读各方资料,总结了关于Python ...

  5. 简单谈谈Python中的几种常见的数据类型

    简单谈谈Python中的几种常见的数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等 ...

  6. Python中的lambda函数介绍

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

  7. 转:关于Python中的lambda,这篇阅读量10万+的文章可能是你见过的最完整的讲解

    lambda是Python编程语言中使用频率较高的一个关键字.那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多.这里,我们通过阅读各方资料,总结了关于Python ...

  8. python中的lambda表达式

    lambda是python中匿名函数的写法  我们可以在不定义函数名的情况下一边定义并调用这个函数 例子: 普通方法定义函数:def  plus(a,b): return a+b lambda方法  ...

  9. python 中: lambda

    lambda 定义了一个匿名函数,是代码更简洁 lambda x:x+1和def g(x): return x+1是相同的哦. python 中的map,filter, reduce 函数为序列内置函 ...

随机推荐

  1. PHP开发Apache服务器配置

    照此配置流程,绝对一路畅通,可保无虞. 昨天弄了个PHP小程序,想在本地跑一下测试,可是工作电脑没有安装环境,于是下载了一个wamp,一路畅通,Apache.Mysql.PHP就 全有了.启动wamp ...

  2. mysql查询一天,查询一周,查询一个月的数据【转】

    转自:http://www.cnblogs.com/likwo/archive/2010/04/16/1713282.html 查询一天: select * from table where to_d ...

  3. DocX组件读取与写入Word

    本文转载:http://www.cnblogs.com/yanweidie/p/3861482.html 由于上周工作比较繁忙,所以这篇文章等了这么久才写(预告一下,下一个章节正式进入NVelocit ...

  4. hdu 2821 Pusher(dfs)

    Problem Description PusherBoy is an online game http://www.hacker.org/push . There is an R * C grid, ...

  5. [ES7] Exploring ES2016 Decorators

    Original artial --> link How descorator looks like: @mydecorator function myFun(){ ... } Descorat ...

  6. 从零開始开发Android版2048 (一)初始化界面

    自学Android一个月多了,一直在工作之余零零散散地看一些东西.感觉经常使用的东西都有些了解了,可是一開始写代码总会出各种奇葩的问题.感觉还是代码写得太少.这样继续杂乱地学习下去进度也太慢了,并且学 ...

  7. 使用like时left outer join和inner join的区别

    --select top 10000 * into #s from search set statistics time on set statistics io on select userId,c ...

  8. WebService学习笔记系列(一)

    webservice主要是解决两个系统或者两个应用程序之间的远程调用,它提供了一种通过web方式访问的api,调用是跨语言.跨平台的. webservice的客户端与服务端进行交互的时候使用xml来传 ...

  9. Amazon S3 上传文件 SSL23_GET_SERVER_HELLO握手错误

    题外话:今天偶尔来逛逛,发现我真是懒到家了.居然有半年前的留言我都没有来看过,真对不起留言的同学,希望他的问题已经解决了. 这两三天一直被亚马逊S3上传文件的问题困扰着,直到昨天晚上终于搞定了,工作群 ...

  10. php yield

    php中关于 yield 关键字的介绍[点击查看] <?php function gen_one_to_three() { for ($i = 1; $i <= 3; $i++) { // ...