一、匿名函数
1.匿名函数是什么?
只调用一次的函数,形式以lambda表达式存在,表达式的结果即是函数返回值
2.为什么要有匿名函数?
ambda有起到速写函数的作用,允许在使用的代码内嵌入一个函数的定义。在仅需要嵌入一小段可执行代码的情况 下,就可以带来更简洁的代码结构。
节省内存开销。不产生名称空间。
但内存地址还存在。影响不大
3.怎么用
a.像普通函数版般使用
ps: 内存地址+([参数]) 使用。
b.常见使用,与其它函数一起使用
例1:求s = {
'egon': 3000,
'alex': 50003,
'lxx': 1023,
'yuanhao': 34012
}
工资最高的名字
max 内置函数默认以key比较
pass:指定函数给max 参数 key.
匿名函数:
例2:完成对例1 字典排序 按照薪资大小排序。sorted默认按照key从小到大排序
nums = [3,1,4,6,7,2] 排序
sorted函数默认从小到大排序
sort 从大到小排序。利用reverse参数
从小到大
从大到小
4.跟匿名函数使用有关系的内置函数 map,reduce,filter
map:映射。 指定规则,将原对象映射成新对象
例:names = ['alex', 'egon', 'lxx', 'wxx'] 每个元素添加‘_dSB’结尾
filter:过滤,指定规则,生成符合条件的新对象
例:names = ['alex_teacher', 'egon_teacher', 'lxx_boss', 'wxx_emp'] 找出所有老师
和列表生成式比较:
有啥区别:
filter 返回的新对象 是可迭代对象 含有__next__
列表生成式返回的 不是
reduce:合并,指定规则,合成符合规则的新的对象