Python--->匿名函數

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值從小到大排列

 

 輸出結果:

相關文章
相關標籤/搜索