定义
匿名函数指一类无须定义标识符的函数或子程序。Python用lambda语法定义匿名函数,只需用表达式而无需申明。
lambda语法的定义如下:
# @param Python匿名函数快速入门
# @author 编程之家 jb51.cc|jb51.cc
lambda [arg1 [,arg2,... argN]] : expression
# End www.jb51.cc
匿名函数特点
1.不用取名称,因为给函数取名是比较头疼的一件事,特别是函数比较多的时候
2.可以直接在使用的地方定义,如果需要修改,直接找到修改即可,方便以后代码的维护工作
3.语法结构简单,不用使用def 函数名(参数名):这种方式定义,直接使用lambda 参数:返回值 定义即可
lambda这个名称来自于LISP,而LISP则是从lambda calculus(一种符号逻辑形式)取这个名称的。在Python中,lambda作为一个关键字,作为引入表达式的语法。想比较def函数,lambda是单一的表达式,而不是语句块!你仅能够在lambda中封装有限的业务逻辑,这样设计的目的:让lambda纯粹为了编写简单的函数而设计,def则专注于处理更大的业务。
与普通函数差异
普通函数:
# @param Python匿名函数快速入门
# @author 编程之家 jb51.cc|jb51.cc
#普通函数,带俩参数的写法
def add(x,y):
return x*y
rs = add(10,20)
print(rs)
# End www.jb51.cc
匿名函数:
# @param Python匿名函数快速入门
# @author 编程之家 jb51.cc|jb51.cc
#带有俩参数的匿名函数
b = lambda x,y:x*y
rs = b(10,20)
print(rs)
# End www.jb51.cc
实例
# @param Python匿名函数快速入门
# @author 编程之家 jb51.cc|jb51.cc
#计算存放100个数字的列表的每一个数字的平方,返回一个新的列表
print(list(map(lambda x:x*x,[x for x in range(100)])))
# End www.jb51.cc
执行结果:
# @param Python匿名函数快速入门
# @author 编程之家 jb51.cc|jb51.cc
[0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,484,529,576,625,676,729,784,841,900,961,1024,1089,1156,1225,1296,1369,1444,1521,1600,1681,1764,1849,1936,2025,2116,2209,2304,2401,2500,2601,2704,2809,2916,3025,3136,3249,3364,3481,3600,3721,3844,3969,4096,4225,4356,4489,4624,4761,4900,5041,5184,5329,5476,5625,5776,5929,6084,6241,6400,6561,6724,6889,7056,7225,7396,7569,7744,7921,8100,8281,8464,8649,8836,9025,9216,9409,9604,9801]
# End www.jb51.cc