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