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'
posted @ 2020-03-25 21:34  the3times  阅读(180)  评论(0编辑  收藏  举报