python学习之-匿名函数

什么是匿名函数

匿名函数: 没有名字的函数,意味着只能用一次就被回收

匿名函数用 lambda 表示

为何用匿名函数:用于临时使用一次的功能

匿名函数的定义格式

lambda 参数,参数:表达式  #参数规则和有名函数是一样的

lambda x,y:return x+y #这个位置的return是自带的,所以写表达式时候不需要写

表达式解析:匿名函数 + 参数:表达式,将表达式的值用return返回

PS:匿名函数自动有一个返回值,自带return,不能写return,也不能写语句,但是只要有返回值的表达式都可以写

匿名函数的调用方式

print(lambda x,y:x+y)(参数1,参数2)  

PS:匿名函数都是与其他功能配合去一起用

匿名函数实例

salaries={

    'egon':3000,

    'alex':100000000,

    'wupeiqi':10000,

    'yuanhao':2000

    }  

用倪匿名函数获取字典中工资最高的人的名字

print(max(salaries,key=lambda k:salaries[k]))  #将匿名函数的返回值传递给key方法,告诉max方法对比的依据是什

逻辑原理就是max先遵循迭代器协议,将salaries的key取出来,然后传给max里面的key这个参数,在通过key这个参数传给函数lamdb
函数内的参数k,参数k再将参数传递给表达式,最后获取的值返回给key,max依据参数做出判断

PS:这里就是将字典的key传递给给匿名函数的参数k,然后将带参数的匿名函数的放入max的key这个参数,让max得到以什么为依据去对比

匿名函数的详解

lambda k:salar

print(min(salaries,key=lambda k:salaries[k]))

res=sorted(salaries,key=lambda k:salaries[k],reverse=True)

print(res)

print(max(salaries.values()))

PS:max默认方法遵循迭代器协议,从字典中取出的值是key,迭代器协议是无法更改的

PS:max方法里面有一个参数是key,这个key不是指字典的key,只是表示max方法的参数,这个key就是告诉max方法比较依据是什么,key一定要指向一个函数的内存地址

猜你喜欢

转载自www.cnblogs.com/shizhengquan/p/10016012.html
今日推荐