python匿名函数
匿名函数就是没有名字的函数,这个没有值得是这个函数可以没有名字,但你给他起名字也是可以的。这也是pythonic。
定义
普通函数用def
定义,匿名函数用lambda
定义
lambda 参数1, 参数2, ...: expression
调用
匿名用于临时调用一次的场景:更多的是将匿名与其他函数配合使用
# 定义:计算两数之和
g = lambda x, y: x+y # g <function <lambda> at 0x000002DAC67A8160>
#调用
res = g(1,2) # res = 3
# 这种方式的定义是给匿名函数绑定了一个函数名,调用和普通函数一模一样;
# 这种使用方式不是匿名函数的优势,匿名含糊一般和某些内置函数配合使用,功能强大。
# 配合内置函数
l = [1,2,3,4,5]
l = list(map(lambda x: x**2, l))
print(l) # [1, 4, 9, 16, 25]
# 匿名函数没有名字,它的引用计数为0,会自动被回收,所以它只会在调用时使用一次,不会占用内存。一般是哟个匿名函数定义使用次数少且功能简单的函数。
使用
salaries={
'siry':3000,
'tom':7000,
'lili':10000,
'jack':2000
}
# 计算薪水最大值
# 函数max会迭代字典salaries,每取出一个“人名”就会当做参数传给指定的匿名函数;
# 然后将匿名函数的返回值当做比较依据,最终返回薪资最高的那个人的名字
>>> max(salaries,key=lambda k:salaries[k])
'lili'