当前位置: 移动技术网 > IT编程>脚本编程>Python > python之lambda函数/表达式

python之lambda函数/表达式

2018年06月28日  | 移动技术网IT编程  | 我要评论

web开发入门,温迪-菲奥里,诛仙往生咒

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网