匿名函数

1.什么是匿名函数

  def定义的是有名函数:特点是可以通过名字重复调用

    def func():#func=函数的内存地址

      pass

  匿名函数就是没有名字的函数:特点是只能在定义时使用一次

 

2.为何要用匿名函数

  强调:

    匿名函数的定义就相当于只产生一个变量值,而没有绑定任何名字,

    所以会在定义完之后就被回收,无法重复使用,只能在定义时使用一次

  应用:当某一个功能仅使用一次就没有再重复使用的必要了,就应该定义成匿名函数

3.如何用匿名函数

max:

salaries={'egon':3000,
          'lii':5000,
          'yyh':10000}


取最大值:
print(max(salaries,key=lambda k:salaries[k]))
取最小值
print(min(salaries,key=lambda k:salaries[k]))
View Code

sorted排序:

salaries={'egon':3000,
          'lii':5000,
          'yyh':10000}


从小到大
print(sorted(salaries,key=lambda k:salaries[k]))
从大到小
print(sorted(salaries,key=lambda k:salaries[k],reverse=True))
View Code

map:

names = ['alex', 'wupeiqi', 'yuanhao', 'kevin', 'hu老师']

列表生成式:
new_names=[name + 'sb' for name in names]
print(new_names)

map+匿名函数:
res = map(lambda x :x+'sb',names)
print(list(res))
View Code

reduce:

from functools import reduce
print(reduce(lambda x,y:x+y,[i for i in range(101)]))
print(reduce(lambda x,y:x+y,['h','e','l','l','o'],'----------'))
View Code

filter:筛选

names = ['alex_dsb', 'wxx_sb', 'kevin_sb', 'hu_sb', 'egon']

new_names = [name for name in names if name.endswith('sb')]
print(new_names)
View Code

 

posted @ 2018-10-10 17:00  Summerdreamcold  阅读(164)  评论(0编辑  收藏  举报