Python学习笔记7:函数对象及函数对象作參数
生活随笔
收集整理的這篇文章主要介紹了
Python学习笔记7:函数对象及函数对象作參数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、lambda函數
比如:
fun1 = lambda x,y: x + y print fun1(3,4)輸出:7
lambda生成一個函數對象。該函數參數為x,y,返回值為x+y。函數對象賦給func。
func的調用與正常函數無異。
上面的代碼等價于:
def fun2(x, y):return x + y
二、函數作為參數
函數能夠作為一個對象。進行參數傳遞。
比如:
fun = lambda x ,y : x+y def runFun(fun, a, b):print fun(a,b) runFun(fun, 3, 5)輸出:8
又如:
runFun((lambda x,y: x**2 + y), 6, 9)
三、map()函數
map()是Python的內置函數。它的第一個參數是一個函數對象。
[2, 3, 4] [11, 102, 1003]
三、filter()函數
filter函數的第一個參數也是一個函數對象。它也是將作為參數的函數對象作用于多個元素。
假設函數對象返回的是True,則該次的元素被儲存于返回的表中。filter通過讀入的函數來篩選數據。
如:
def fun3(a):if a > 100:return Trueelse:return Falseprint filter(fun3, [10,20,100,110])輸出:[110]
四、reduce()函數
reduce函數的第一個參數也是函數,但有一個要求,就是這個函數自身能接收兩個參數。
reduce將表中的前兩個元素(1和2)傳遞給lambda函數,得到3。
比如:
fun1 = lambda x,y: x + y print fun1(3,4)輸出:7
lambda生成一個函數對象。該函數參數為x,y,返回值為x+y。函數對象賦給func。
func的調用與正常函數無異。
上面的代碼等價于:
def fun2(x, y):return x + y
二、函數作為參數
函數能夠作為一個對象。進行參數傳遞。
比如:
fun = lambda x ,y : x+y def runFun(fun, a, b):print fun(a,b) runFun(fun, 3, 5)輸出:8
又如:
runFun((lambda x,y: x**2 + y), 6, 9)
三、map()函數
map()是Python的內置函數。它的第一個參數是一個函數對象。
map()的功能是將函數對象依次作用于表的每個元素。并將結果返回。
如:
[2, 3, 4] [11, 102, 1003]
三、filter()函數
filter函數的第一個參數也是一個函數對象。它也是將作為參數的函數對象作用于多個元素。
假設函數對象返回的是True,則該次的元素被儲存于返回的表中。filter通過讀入的函數來篩選數據。
如:
def fun3(a):if a > 100:return Trueelse:return Falseprint filter(fun3, [10,20,100,110])輸出:[110]
四、reduce()函數
reduce函數的第一個參數也是函數,但有一個要求,就是這個函數自身能接收兩個參數。
比如:
reduce將表中的前兩個元素(1和2)傳遞給lambda函數,得到3。
該返回值(3)將作為lambda函數的第一個參數,而表中的下一個元素(3)作為lambda函數的第二個參數,進行下一次的對lambda函數的調用,得到6。
依次調用lambda函數。每次lambda函數的第一個參數是上一次運算結果,而第二個參數為表中的下一個元素,直到表中沒有剩余元素。
上面樣例。相當于(((1+2)+3)+4)+5
注意:在3.x版本號中map,filter,reduce這三個函數都稍有不同
總結
以上是生活随笔為你收集整理的Python学习笔记7:函数对象及函数对象作參数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 女人梦到黄鼠狼预示着什么
- 下一篇: 《Python地理数据处理》——导读