最近刚开始学习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. jetty之建立多Connector

    转自:http://blog.csdn.net/kongxx/article/details/7218787 在嵌入运行Jetty的时候,有时候想要启动两个端口,或者通过一个Jetty server提 ...

  2. java小算法—大衍数列

    题目:    中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传统文化中的太极衍生原理. 它的前几项是:0.2.4.8.12.18.24.32.40.50 ... 其规律是:对偶数项,是序号平 ...

  3. Java反射_JDBC操作数据

    </pre><p>使用反射 来操作  这里是练习反射的使用</p><p>链接数据库工具类</p><p><pre name= ...

  4. EasyUI-页面布局

    通过使用 jQuery EasyUI 可以很容易地添加 Tabs.您只需要调用 'add' 方法即可. 在本教程中,我们将使用 iframe 动态地添加显示在一个页面上的 Tabs. 当点击添加按钮, ...

  5. 指纹增强程序Hong_enhancement

    本算法是基于Lin Hong et al 的论文“Fingerprint ImageEnhancement: Algorithm and Performance Evaluation”编写而成.其中一 ...

  6. [D3] 14. Line and Area Charts with D3

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  7. 基于单个 div 的 CSS 画图

    原文: Single Div Drawings with CSS 译文: 基于单个 div 的 CSS 画图 译者: 前端外刊评论 译注:通读本文,强烈地感受到了技术与艺术的结合.赞作者的这句话:Re ...

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

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

  9. 高性能爬虫为什么使用定制DNS客户端?

    DNS 解析是高性能网络爬虫的瓶颈,主要是因为: 1. 由于域名服务的分布式的特性,DNS解析可能需要多次的请求转发,有时需要几秒甚至更长的时间来解析出相应的IP 地址. 2. 现有的标准库对DNS解 ...

  10. Frequent Pattern 挖掘之二(FP Growth算法)(转)

    FP树构造 FP Growth算法利用了巧妙的数据结构,大大降低了Aproir挖掘算法的代价,他不需要不断得生成候选项目队列和不断得扫描整个数据库进行比对.为了达到这样的效果,它采用了一种简洁的数据结 ...