一:匿名函数
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)