python函数(六)—匿名函数
匿名函数
1.实例
f=lambda x,y:x+y
print(f(1,2))
等同于
def func(x,y):
return x+y
func(1,2)
2.应用
salaries={
'egon':3000,
'alex':100000000,
'wupeiqi':10000,
'yuanhao':2000
}
print(max(salaries)) #默认按key排序
res=zip(salaries.values(),salaries.keys()) #运用zip函数调换key,value的位置,是一个zip对象,迭代器
print(list(res)) #列表对象
print(max(res)) # 还是键值对
按照value比较,返回key
def func(k):
return salaries[k]
print(max(salaries,key=func))
运用匿名函数实现
print(max(salaries,key=lambda k:salaries[k]))
3.拓展
匿名函数与sorted的联合运用
print(sorted(salaries)) #默认的排序结果是从小到到
print(sorted(salaries,key=lambda x:salaries[x])) #默认的排序结果是从小到到
print(sorted(salaries,key=lambda x:salaries[x],reverse=True)) #默认的排序结果是从小到到
匿名函数与map
l=['alex','wupeiqi','yuanhao']
res=map(lambda x:x+'_SB',l)
print(list(res))
nums=(2,4,9,10)
res1=map(lambda x:x**2,nums)
print(list(res1))
匿名函数与reduce
from functools import reduce
l=[1,2,3,4,5]
print(reduce(lambda x,y:x+y,l,10)) #带初始值的求和运算
l=['alex_SB','wupeiqi_SB','yuanhao_SB','egon']
res=filter(lambda x:x.endswith('SB'),l)
print(res)
print(list(res))