python——匿名函数
什么是匿名函数?
匿名函数就是没有名字的函数
为什么要有匿名函数?
因为随着程序代码的增多对于函数起名比较麻烦,并且有些函数只调用一次,那么这种情况,用匿名函数比较合适
#如何定义一个匿名函数?
一般函数: def test(x,y): return x + y res = test(1,2) print(res)
>>> 3 匿名函数: res = (lambda x,y: x+y)(1,2) print(res)
>>> 3
语法
lambda 函数的语法只包含一个语句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
# lambda 参数列表:return [表达式] 变量
# 由于lambda返回的是函数对象(构建的是一个函数对象),所以需要定义一个变量去接收
实例一
# 可写函数说明
sum = lambda x, y: x + y;
# 调用sum函数
print ("相加后的值为 : ", sum( 10, 20 )) >>> 30 print ("相加后的值为 : ", sum( 20, 20 )) >>> 40
实例二
对字典排序
infos = [ {'name':'zhangsan','age':23}, {'name':'lisi','age':24}, {'name':'wangwu','age':12}, {'name':'zhaoliu','age':33}, {'name':'liuer','age':23} ] infos.sort(key=lambda x:x['age']) print(infos) >>> [{'name': 'wangwu', 'age': 12}, {'name': 'zhangsan', 'age': 23}, {'name': 'liuer', 'age': 23}, {'name': 'lisi', 'age': 24}, {'name': 'zhaoliu', 'age': 33}]
实例三
把lambda当一个变量
def test(a,b,func): result = func(a,b) return result num = test(11,22,lambda x,y:x+y) print(num) >>> 33
匿名函数优点
• 使用Python写一些脚本时,使用lambda可以省去定义函数的过程,让代码更加精简。
• 对于一些抽象的,不会被别的地方再重复使用的函数,有时候函数起个名字也是个难题,使用lambda不需要考虑命名的问题
• 使用lambda在某些时候然后代码更容易理解
作者:无荨
-------------------------------------------
个性签名:学IT,就要做到‘活到老学到老’!
如果觉得这篇文章对你有小小的帮助的话,别忘记点个“推荐”哦!