谈谈python中的 lambda
最近刚开始学习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的更多相关文章
- 【转】python中的lambda函数
http://www.cnblogs.com/coderzh/archive/2010/04/30/python-cookbook-lambda.html lambda函数也叫匿名函数,即,函数没有具 ...
- python中的lambda表达
C++中的lambda表达式与C++11增加标准库,是一个简短的匿名的可调用对象,编译器会将其转化为一个匿名类的对象.lambda表达式的最大特点就是简短灵活.调用方便.它不须要处理非常复杂的逻辑.通 ...
- 在Python中使用lambda高效操作列表的教程
在Python中使用lambda高效操作列表的教程 这篇文章主要介绍了在Python中使用lambda高效操作列表的教程,结合了包括map.filter.reduce.sorted等函数,需要的朋友可 ...
- 关于Python中的lambda
lambda是Python编程语言中使用频率较高的一个关键字.那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多.这里,我们通过阅读各方资料,总结了关于Python ...
- 简单谈谈Python中的几种常见的数据类型
简单谈谈Python中的几种常见的数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等 ...
- Python中的lambda函数介绍
Lambda函数,即Lambda 表达式(lambda expression),是一个匿名函数(不存在函数名的函数),Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lam ...
- 转:关于Python中的lambda,这篇阅读量10万+的文章可能是你见过的最完整的讲解
lambda是Python编程语言中使用频率较高的一个关键字.那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多.这里,我们通过阅读各方资料,总结了关于Python ...
- python中的lambda表达式
lambda是python中匿名函数的写法 我们可以在不定义函数名的情况下一边定义并调用这个函数 例子: 普通方法定义函数:def plus(a,b): return a+b lambda方法 ...
- python 中: lambda
lambda 定义了一个匿名函数,是代码更简洁 lambda x:x+1和def g(x): return x+1是相同的哦. python 中的map,filter, reduce 函数为序列内置函 ...
随机推荐
- jdk的动态代理
至于jdk的动态代理怎么用此处并不多说,现在是更深一步的理解,jdk的Proxy类到底做了什么. Proxy.newProxyInstance可以生成代理类,此方法有三个参数(ClassLoader ...
- Quartz定时任务学习(六)作业
org.quartz.Job 接口 把 Quartz 作用到 Java 类上唯一要做的就是让它实现 org.quartz.Job 接口.你的 Job 类可以实现任何其他想要的接口或继承任何需要的基类, ...
- 检测到有潜在危险的Request.Form值
由于在.net中,Request时出现有HTML或Javascript等字符串时,系统会认为是危险性值.立马报出“从客户端 中检测到有潜在危险的Request.Form值”这样的错. 用encodeU ...
- Android开发学习之LauncherActivity开发启动的列表
Android开发学习之LauncherActivity开发启动的列表 创建项目:OtherActivity 项目运行结果: 建立主Activity:OtherActivity.java [jav ...
- SCTP 关联的建立和终止
与TCP一样,SCTP也是面向连接的,因而也有关联的建立与终止的握手过程.不过SCTP的握手过程不同于TCP. 四路握手 建立一个SCTP关联的时候会发生下述情形(类似于TCP). (1)服务器必须准 ...
- 汇编语言-[BX]和loop指令
汇编语言-[BX]和loop指令 [BX]指令介绍 mov ax,[bx] 功能: bx为偏移地址,段地址默认为ds.因此,上面指令作用就是将ax中的数据送入内存ds:bx处,即:((ds)*16 + ...
- Eclipse - 添加 PyDev 插件
1. 安装PyDev插件 启用Eclipse.在Help菜单中,选择Install New Software···, 然后点击Add按钮.在Location中输入:http://pydev.org/u ...
- mac下通过docker搭建LEMP环境
在mac下通过docker搭建LEMP环境境 1.安装virtualbox.由于docker是在lxc环境的容器 2.安装boot2docker,用于与docker客户端通讯 > brew up ...
- CSS样式表其它知识点
1.cursor:pointer鼠标放到上面变形状,pointer为手 2.margin:auto 页面居中 3.显示方式:dispaly:none不显示/block 块换行/inline在一行上,宽 ...
- c# PadLeft,PadRight用法
补位 string str = "100"; str.PadLeft(5,'0') 输出:00100 str.PadRight(5, '0') 输出:10000

