1.匿名函數:簡化函數定義函數
格式:lambda args1,args2,.... : 運算spa
一般函數寫法以下:3d
匿名函數寫法以下:對象
注意:此時result1實際爲函數名,就是一般函數中的def後跟的函數名:add,想要獲得返回結果,還須要調用result1(),blog
若你只打印result1,出現的是函數因此引用的地址,以下圖:排序
輸出結果:it
2.匿名函數做爲參數import
輸出結果:匿名函數
3.匿名函數與內置函數的結合使用:原理
max()求列表最大值
一種狀況:列表是可迭代對象
語法:max(list)
l
輸出結果:
打印max(list)便可獲得列表最大值
一種狀況:列表中元素是字典類型
語法:max(list,key=func)
輸入結果:
這裏的lambda x:x['a']其實就是經過字典的key,求value的函數
函數max(list1,key=func)工做原理:第一個參數:list1告訴max函數是哪一個列表,而後經過key求出的value值再一個一個傳給max計算得出最大值
min()求列表最小值
原理同max()同樣,詳細參考上述max()
map() :對列表中每一個元素進行遍歷,運算,通常用於對列表每一個元素進行某些操做,好比+、-
語法:map(func,list)
注意:map()後須要用list()強轉化爲一個列表
輸出結果:
對列表每一個值都+2處理,等同於遍歷函數,以下:
輸出結果:
還能夠經過奇偶數操做,以下:
輸出結果:
對奇數加1處理
reduce():對列表中元素從左到右進行加減乘除運算的函數
語法:ruduce(func,sequence,initial) # initial 默認值爲None
輸出結果:
注意:需到導入:from functools import reduce
工做原理爲:result = ((0+1)+2)+3 = 6
若是設置initial = 10,以下:
輸出結果:
工做原理爲:result = ((10+1)+2)+3 = 16
filter():根據函數條件過濾列表,返回一個新列表,原列表不變
語法:filter(func,list)
注意:filter()後須要用list()強轉化爲一個列表
輸出結果:
這裏把大於3的元素都篩選出來了,至關於過濾函數,以下:
輸出結果:
sorted():對列表進行排序
語法:sorted(list,key=func,reverse=False/True)
將'a'的value值從大到小排列
輸出結果:
將'a'的value值從小到大排列
輸出結果: