1、匿名函數函數
1.匿名函數是什麼? spa
只調用一次的函數,形式以lambda表達式存在,表達式的結果便是函數返回值3d
2.爲何要有匿名函數?對象
ambda有起到速寫函數的做用,容許在使用的代碼內嵌入一個函數的定義。在僅須要嵌入一小段可執行代碼的狀況 下,就能夠帶來更簡潔的代碼結構。blog
節省內存開銷。不產生名稱空間。排序
但內存地址還存在。影響不大內存
3.怎麼用
匿名函數
a.像普通函數版般使用
lambda
ps: 內存地址+([參數]) 使用。map
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:合併,指定規則,合成符合規則的新的對象