下面代码简单举例介绍以下 lambda的用法。

from functools import reduce

#1 python lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符,而def则会把函数对象赋值给一个变量。
#2 python lambda它只是一个表达式,而def则是一个语句。
#匿名函数lambda
num = lambda x,y : x+y print("lambda")
print(num(3,4)) #上面的代码可以使用 def 定义函数实现 def add(x,y):
return x+y
print("def")
print(add(3,4)) '''
由上例可以看出
lambda的一般形式是关键字lambda后面跟一个或多个参数,
紧跟一个冒号,以后是一个表达式。
lambda是一个表达式而不是一个语句。
它能够出现在Python语法不允许def出现的地方。作为表达式,
lambda返回一个值(即一个新的函数)。
lambda用来编写简单的函数,而def用来处理更强大的任务。 ''' #lambda 使用举例
#python2 的用法
'''
#python2 是如下写法,但是python 3中修改了写法。见如下写法
foo = [2, 18, 9, 22, 17, 24, 8, 12, 27] #
print(filter(lambda x: x % 3 == 0, foo))
#--[18, 9, 24, 12, 27]
map_list = list()
print(map(lambda x: x * 2 + 10, foo))
#--[14, 46, 28, 54, 44, 58, 26, 34, 64]
print(reduce(lambda x, y: x + y, foo))
''' #python 3 的用法
#Python中,也有几个定义好的全局函数方便使用的,filter, map, reduce   foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
num_list = list(filter(lambda x: x % 3 == 0, foo))
print(num_list)
#--[18, 9, 24, 12, 27]
map_list = list(map(lambda x: x * 2 + 10, foo))
print(map_list)
#--[14, 46, 28, 54, 44, 58, 26, 34, 64] '''
reduce函数:
在Python 3里,reduce()函数已经被从全局名字空间里移除了,它现在被放置在fucntools模块里 用的话要 先引
入:
'''
print(reduce(lambda x, y: x + y, foo)) # 下面的代码主要是为了 体现lambda 的其他用法,可以传递参数。而不使用的时候 不能传递参数 # Button(top, text="计算", command=lambda: on_click(top, base_text)).pack()
# top.mainloop() # 这种 直接command = 方法名的方式,函数是不能传递参数的,所以为了能传递参数使用了上面的方法。
# Button(top, text="计算", command= on_click).pack()

最新文章

  1. 从零开始编写自己的C#框架(22)——添加普通列表页面
  2. document.body / document.ducumentElement /等获取高度和宽度的区别 ----转载
  3. Bugtags 与其它产品的区别
  4. iOS: 悬浮的条件筛选框使用二
  5. microsoft Ebook
  6. http://www.cnblogs.com/draem0507/archive/2013/02/01/2889317.html
  7. php-PHP试题
  8. [selenium webdriver Java]元素定位——findElement/findElements
  9. mysql 锁 实验
  10. Hadoop环境搭建-入门伪分布式配置(Mac OS,0.21.0,Eclipse 3.6)
  11. HDU 5735 - Born Slippy
  12. 【Eclipse】Failed to load JavaHL Library
  13. C语言知识汇总
  14. .Net编译之AnyCPU - 进阶者系列 - 学习者系列文章
  15. token的使用流程
  16. vs中插件影响代码自动创建后台事件问题
  17. IDEA 2017.2.2 环境下使用JUnit
  18. WCF--找不到具有绑定 BasicHttpBinding 的终结点的与方案 https 匹配的基址。注册的基址方案是 [http]。
  19. July 31st 2017 Week 31st Monday
  20. Keras + Ubuntu环境搭建

热门文章

  1. Memcached数据存储方式
  2. MySQL error : Deadlock found when trying to get lock; try restarting transaction
  3. spring bean id重复覆盖的问题解决
  4. 工具软件集合 Adobe AE PS Pr CC 2018 2019 破解教程
  5. 【转载】解决SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问的方法
  6. Oracle sqlldr数据加载
  7. 静态实现AOP(翻译自MSDN)
  8. C Primer Plus学习笔记(九)- 数组和指针
  9. Python实现SSH连接远程服务器
  10. javascript中的类方法、构造方法、原型方法的对比