定义
匿名函数指一类无须定义标识符的函数或子程序。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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。