最近刚开始学习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. 在code.org上自己写一个flappy bird游戏

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:在code.org上自己写一个flappy bird游戏.

  2. canvas绘制简单小铅笔

    对应HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...

  3. DataGridView减少闪烁的解决办法

    Reducing flicker, blinking in DataGridView http://www.codeproject.com/Tips/390496/Reducing-flicker-b ...

  4. pcap文件格式

      pcap文件格式 pcap文件格式是bpf保存原始数据包的格式,很多软件都在使用,比如tcpdump.wireshark等等,了解pcap格式可以加深对原始数据包的了解,自己也可以手工构造任意的数 ...

  5. NDK开发之字符串操作

    在JNI中,Java字符串被当作一个引用来处理.这些引用类型并不像原生C字符串一样可以直接使用,JNI提供了Java字符串与C字符串之间转换的必要函数,因为Java字符串对象是不可变的(如果对这里有异 ...

  6. Oracle11g - dos 命令 sqlplus/nolog 提示 不是内部命令解决办法

    继安装Oracle 11g后,解锁SCOtt时发现 dos 命令 sqlplus/nolog 提示 不是内部命令解决办法   通过实际验证现整理有效方法步骤如下: 步骤一:开始>>找到Or ...

  7. System Operations on AWS - Lab 1W - Creating EC2 (Windows)

    1. 创建CommandHost实例,登录到CommandHost,通过AWS CLI创建WebServer实例. 1.1 为CommandHost实例创建一个IAM角色 1.2 创建CommandH ...

  8. oracle如何获取上个月的月份

    --转载   这个要用到add_months()函数 参数 负数 代表 往前 正数 代表 往后.select to_char(add_months(trunc(sysdate),-1),'yyyymm ...

  9. 学习使用Et采集的过程和分析

  10. Linux上安装KDE, Gnome和VNC

    安装所需环境:需要至少256m的可用内存(128也可以不过有点卡)CentOS或类似OS(Debian的话改成apt-get应该也可以) 1,安装KDE 1 yum install kdepim 或安 ...