lambda
1.定义
匿名函数:是指一类无需定义标识符(函数名)的函数或子程序。所谓匿名函数,通俗地说就是没有名字的函数,lambda函数没有名字,是一种简单的、在同一行中定义函数的方法。
2.语法
lambda arg1,arg2,arg3...: expression
参数列表可以是如下元素:
a,b a=1,b=2 *args (任意个数的参数) **kwargs (任意键值对参数) a,b=1,*args 空
lambda 函数可以接收任意多个参数 (包括可选参数), 并且返回单个表达式的值,但是lambda函数只可以有一个表达式。
e.g.
① lambda x, y: x*y;函数输入是x和y,输出是它们的积x*y
②lambda:None;函数没有输入参数,输出是None
③lambda *args: sum(args); 输入是任意个数的参数,输出是它们的和(隐性要求是输入参数必须能够进行加法运算)
3.用法
①将lambda函数赋值给一个变量,通过这个变量间接调用该lambda函数。
例如,执行语句add=lambda x, y: x+y,定义了加法函数lambda x, y: x+y,并将其赋值给变量add,这样变量add便成为具有加法功能的函数。例如,执行add(1,2),输出为3。
②部分Python内置函数接受函数作为参数,比如fliter,sorted,map和reduce函数。
例子如下
files=['1.txt', '10.txt', '11.txt', '2.txt', '3.txt'] files.sort() print(files) >>>['1.txt', '10.txt', '11.txt', '2.txt', '3.txt'] files.sort(key= lambda x:int(x[:-4])) print files >>>['1.txt', '2.txt', '3.txt', '10.txt', '11.txt']
参考:
【1】https://www.cnblogs.com/jins-note/p/9550388.html
【2】https://zhuanlan.zhihu.com/p/58579207
【3】https://zhuanlan.zhihu.com/p/80960485