匿名函数
匿名函数
1.def用于定义有名函数
# func = 函数的内存地址
def func(x,y):
return x,y
print(func)
2.lambda用于定义匿名函数
print(lambda x,y:x+y)
3.调用匿名函数
lambda x,y:x+y只是一个内存地址,要加()才能调用
# 方式1: res = (lambda x,y:x+y)(1,2) print(res) # 方式2: func = lambda x,y:x+y res = func(1,2) print(res)
4.匿名函数用于临时调用一次的场景:更多的是将匿名函数与其他函数配合使用
匿名函数的应用
1.需求1:找出薪资最高的那个人 ==> lili
salaries = { 'siri': 3000, 'tom': 7000, 'lili': 10000, 'jack': 2000 } # res = max([2,144,7,999]) # print(res) # res = max(salaries) # 默认按照key排序 # print(res) 输出:tom salaries = { 'siri': 3000, 'tom': 7000, 'lili': 10000, 'jack': 2000 } # 迭代出的内容 比较的值 # 'siri' 3000 # 'tom' 7000 # 'lili' 10000 # 'jack' 2000 def func(k): return salaries[k] # =======max======= res = max(salaries, key=func) # 返回值 = func('siri') print(res) # =======min======= res=min(salaries,key=lambda k:salaries[k]) print(res) # =======sorted排序======= res = sorted(salaries,key=lambda k:salaries[k]) print(res)
map的应用
l = ['alex', 'lxx', 'wxx', '薛贤奇'] new_l = (name + 'dsb' for name in l) print(new_l)
生成器
l = ['alex', 'lxx', 'wxx', '薛贤奇'] res = map(lambda name:name + 'dsb',l) print(res) # 生成器 l = ['alex', 'lxx', 'wxx', '薛贤奇'] # res = (name for name in l if name.endswith('sb')) # print(res) filter(lambda name:name.endwith('sb'),l)
reduce的应用
from functools import reduce res = reduce(lambda x,y:x+y,[1,2,3],10) # 16 print(res) res = reduce(lambda x,y:x+y,['a','b','c'],'Hello') # Helloabc print(res) res = reduce(lambda x,y:x+y,['a','b','c']) # Helloabc print(res)