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))

posted @ 2017-06-03 10:33  geek_ace  阅读(292)  评论(0编辑  收藏  举报