匿名函数的使用


'''
匿名函数:
注意:
1,不会单独使用,会与其他函数配合使用,
2,匿名函数的精髓在于没有名字,如果没有名字意味着用一次就立刻回收
所以匿名函数的应用场景就仅应用于值使用一次的场景

配合使用的内置函数:max min sorted filter map

需求:有一个字典,求出最大工资的那个人民
salaries = {
'egon':3000,
'alex':1000000,
'wupeiqi':100001111,
'yuanhao':2000
}
##传统做法
for k,v in salaries.items():
if v == max(salaries.values()):
print(k)
####用匿名函数的做法
print(max(salaries,key= lambda x:salaries[x]))
# print(min(salaries,key= lambda x:salaries[x]))

按照薪资排序,从小到大牌
print(sorted([1,3,5,1,2,4,5,8,9]))

print(sorted(salaries,key=lambda x:salaries[x]))

map的作用:映射
应用:
names = ['alex','wupeiqi','yuanhao','liuqingzheng']
obj = map(lambda x:x+'_sb',names)
print(obj)
print(obj.__next__())
print(list(obj))

filter的应用:过滤
names = ['wupeiqi_sb', 'yuanhao_sb', 'liuqingzheng_sb','egon']
将以SB结尾的过滤掉
##需求:将names中以sb结尾的移除掉
names = ['wupeiqi_sb', 'yuanhao_sb', 'liuqingzheng_sb','egon']
###传统做法:
for i in names:
if i.endswith('sb'):
names.remove(i)
print(names)
###运用匿名函数的做法:
names = ['wupeiqi_sb', 'yuanhao_sb', 'liuqingzheng_sb','egon']
ls = [name for name in names if not name.endswith('sb')]
print(ls)


'''
def func(x,y):
return x+y

res = (lambda x,y:x + y)(1,4)
# print(res)
# print(lambda x,y:x + y)
salaries = {
'egon':3000,
'alex':100000,
'wupeiqi':1000,
'yuanhao':2000
}
# print(sorted([1,3,5,1,2,4,5,8,9]))
# print(sorted(salaries,key=lambda x:salaries[x]))
# print('='*100)




posted @ 2019-04-28 18:53  同济小孙  阅读(507)  评论(0编辑  收藏  举报