lambda函数也叫匿名函数,允许快速定义单行函数。通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。

格式

lambda argument_list: expression

lambda与def的区别

1)def创建的方法是有名称的,而lambda没有;

2)lambda会返回一个函数对象,但这个对象不会赋给一个标志符,而def则会把函数对象赋值给一个变量(函数名);

3)lambda只是一个表达式,而def是一个语句;

4)lambda表达式“:”后面只能有一个表达式,而def则可以有多个;

5)if、for、print等语句不能用于lambda中;

6)lambda一般用于定义简单的函数;

7)lambda函数不能共享给别的程序调用;

lambda使用

1、应用在函数式编程中

Python提供了很多函数式编程的特性,如:map、reduce、filter、sored等函数都支持函数做为参数,lambda函数就可以应用在函数式编程中。

# 需求:将列表中的元素按照绝对值大小进行升序排列
list1 = [3,5,-4,-1,0,-2,-6]
sorted(list1, key=lambda x: abs(x))

2、应用在闭包中

如果在一个函数的内部定义了另一个函数,外部的我们叫他外函数,内部的我们叫他内函数。

闭包:在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。

def get_y(a,b):
return lambda x:a*x+b
y1 = get_y(2,1)
y1(2) # 结果为5

最新文章

  1. 【整理】C#文件操作大全(SamWang)<转>
  2. java 内部类1
  3. linux 大并发下 内核优化
  4. 【转载】 使用Anemometer基于pt-query-digest将MySQL慢查询可视化
  5. poj3683 Priest John's Busiest Day
  6. C/C++:拷贝构造函数
  7. hdu 4104
  8. javascript原型链继承
  9. 从ASP.NET Web API 2 (C#)开始说起
  10. Linux命令学习-useradd和usermod
  11. Textbox服务器控件
  12. 利用css实现页面加载时旋转动画
  13. Windows10 + Matlab2013 mex C++ 调用gsl
  14. c语言之控制语句:循环
  15. Mybatis集成Oracle
  16. 3.Redis高级功能
  17. sql文件或连接数据库反向生成pdm文件
  18. 洛谷 P4345 [SHOI2015]超能粒子炮·改 解题报告
  19. Linux内核分析第一周总结
  20. 2. 修改myeclipse默认用户和时间

热门文章

  1. 前端组件化Polymer入门教程(2)——Hello world
  2. Tomcat8源码编译及导入Eclipse中研究
  3. C# 例子1
  4. Android性能测试--垃圾回收频次统计的作用
  5. HTTPS知识小结
  6. winform窗体 小程序【打开多个窗体、窗体之间传值、打开唯一窗体】
  7. [日常] Go语言圣经--并发的循环习题
  8. logback日志的美化
  9. java设计模式-----21、备忘录模式
  10. java.lang.ExceptionInInitializerError异常