匿名函数、内置函数
目录:
一、匿名函数:
匿名就是没有名字 def func(x,y,z=1): return x+y+z 匿名 lambda x,y,z=1:x+y+z #与函数有相同的作用域,但是匿名意味着引用计数为0,使用一次就释放,除非让其有名字 func=lambda x,y,z=1:x+y+z func(1,2,3) #让其有名字就没有意义
#有名函数与匿名函数的对比 有名函数:循环使用,保存了名字,通过名字就可以重复引用函数功能 匿名函数:一次性使用,随时随时定义 应用:max,min,sorted,map,reduce,filter
salaries={ 'ni':300, 'hao':10000, 'ma':1000, 'world':200 } print(max(salaries, key=lambda k:salaries[k])) print(min(salaries, key=lambda k:salaries[k])) print(sorted(salaries, key=lambda k:salaries[k])) print(sorted(salaries, key=lambda k:salaries[k], reverse=True)) names = ['a','b','c','d'] res = map(lambda x:x+'_sb', names) # res = (name+'_sb' for name in names) print(list(res)) names = ['a_sb','b','c_sb','d'] res = filter(lambda x:x.endswith('sb'), names) # res = (name for name in names if name.endswith('sb')) print(list(res))
二、内置函数: