lambda 用于定义匿名函数
lambda x, y: x + y
lambda 是在定义一个匿名函数的关键字,返回改函数的内存地址。
主要用于临时调用一次的场景,更多的是将匿名与其他函数配合使用。
冒号前面的是参数,冒号后面的是返回值。
等同于
def func(x, y):
return x + y
使用场景
需求1
找出年龄最大的人
age = {"tom": 44, "jerry": 43, "Vooce": 23, "grandmother": 88}
re = max(age, key=lambda k:age[k])
需求2
按照年龄从小到大排序
age = {"tom": 44, "jerry": 43, "Vooce": 23, "grandmother": 88}
re = sorted(age, key=lambda k:age[k])
需求3
给每个人的名字前加上 Dear
有两种方案:一种方案是使用迭代器
l = ["tom", "jerry", "Vooce", "grandmother"]
re = ["Dear "+name for name in l]
print(re)
另一种方案是使用内置函数 map.
Python3 中,map() 函数返回一个生成器,需要加上 list 遍历转换为列表.
l = ["tom", "jerry", "Vooce", "grandmother"]
map_re = list(map(lambda name: "Dear "+name, l))
print(map_re)
其他调用匿名函数的方式:
方法1
res = (lambda x, y: x + y)(1, 2)
print(res) # 3
方法2(不推荐,违反匿名函数的原则)
func = lambda x, y: x + y
re = func(1, 2)
print(1, 2)