Python匿名函数
2018-08-24 20:19
155 查看
定义
匿名函数指一类无须定义标识符的函数或子程序。Python用lambda语法定义匿名函数,只需用表达式而无需申明。
lambda语法的定义如下:
lambda [arg1 [,arg2, ... argN]] : expression
除了没有函数名,其语法与如下函数的定义相同。
匿名函数特点
1.不用取名称,因为给函数取名是比较头疼的一件事,特别是函数比较多的时候
2.可以直接在使用的地方定义,如果需要修改,直接找到修改即可,方便以后代码的维护工作
3.语法结构简单,不用使用def 函数名(参数名):这种方式定义,直接使用lambda 参数:返回值 定义即可
lambda这个名称来自于LISP,而LISP则是从lambda calculus(一种符号逻辑形式)取这个名称的。在Python中,lambda作为一个关键字,作为引入表达式的语法。想比较def函数,lambda是单一的表达式,而不是语句块!你仅能够在lambda中封装有限的业务逻辑,这样设计的目的:让lambda纯粹为了编写简单的函数而设计,def则专注于处理更大的业务。
与普通函数差异
普通函数:
#普通函数,带俩参数的写法
def add(x,y):
return x*y
rs = add(10,20)
print(rs)
匿名函数:
#带有俩参数的匿名函数
b = lambda x,y:x*y
rs = b(10,20)
print(rs)
实例
#计算存放100个数字的列表的每一个数字的平方,返回一个新的列表
print(list(map(lambda x:x*x,[x for x in range(100)])))
执行结果:
[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]
作者:RISEBY
链接:https://www.imooc.com/article/50220
来源:慕课网
匿名函数指一类无须定义标识符的函数或子程序。Python用lambda语法定义匿名函数,只需用表达式而无需申明。
lambda语法的定义如下:
lambda [arg1 [,arg2, ... argN]] : expression
除了没有函数名,其语法与如下函数的定义相同。
匿名函数特点
1.不用取名称,因为给函数取名是比较头疼的一件事,特别是函数比较多的时候
2.可以直接在使用的地方定义,如果需要修改,直接找到修改即可,方便以后代码的维护工作
3.语法结构简单,不用使用def 函数名(参数名):这种方式定义,直接使用lambda 参数:返回值 定义即可
lambda这个名称来自于LISP,而LISP则是从lambda calculus(一种符号逻辑形式)取这个名称的。在Python中,lambda作为一个关键字,作为引入表达式的语法。想比较def函数,lambda是单一的表达式,而不是语句块!你仅能够在lambda中封装有限的业务逻辑,这样设计的目的:让lambda纯粹为了编写简单的函数而设计,def则专注于处理更大的业务。
与普通函数差异
普通函数:
#普通函数,带俩参数的写法
def add(x,y):
return x*y
rs = add(10,20)
print(rs)
匿名函数:
#带有俩参数的匿名函数
b = lambda x,y:x*y
rs = b(10,20)
print(rs)
实例
#计算存放100个数字的列表的每一个数字的平方,返回一个新的列表
print(list(map(lambda x:x*x,[x for x in range(100)])))
执行结果:
[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]
作者:RISEBY
链接:https://www.imooc.com/article/50220
来源:慕课网
相关文章推荐
- python lambda匿名函数
- Python8--匿名函数、变量交换
- Python3匿名函数字典排序、生成式与生成器、装饰器简介
- 洗礼灵魂,修炼python(24)--自定义函数(5)—匿名函数lambda
- python学习——匿名函数
- Python的lambda匿名函数
- Python笔记5——匿名函数,偏函数,模块
- 九、python中的匿名函数
- 第6章 python 模块使用(二) 匿名函数与内置函数
- Python基础(10)_内置函数、匿名函数、递归
- python--内置函数、匿名函数、递归调用
- 王亟亟的Python学习之路(10)-匿名函数
- Python学习3--返回函数 、匿名函数、装饰器、偏函数
- 初学 Python(十三)——匿名函数
- python学习 匿名函数
- python_笔记12_匿名函数
- python中匿名函数
- 洗礼灵魂,修炼python(25)--自定义函数(6)—从匿名函数进阶话题讲解中解析“函数式编程”
- Python Lambda 匿名函数
- python-3_函数_匿名函数_正则_yield_迭代器_序列化_内置函数_模块