python偏函数和高阶函数_【Python入门】8.高阶函数之 匿名函数和偏函数
目錄
高階函數
匿名函數 lambda
偏函數
高階函數
匿名函數 lambda
lambda,即希臘字母λ。顧名思義,匿名函數沒有函數名,在運用時采取lambda x : ...的方式,如lambda?x?:?x?+?x
相當于def?f(x):
return?x?+?x
如在結合map( )函數生成序列時就可以這樣寫。>>>list(map(lambda?x:?x?+?x,?[1,?2,?3,?4,?5,?6,?7,?8,?9]))
[2,?4,?6,?8,?10,?12,?14,?16,?18]
很多時候并不需要顯義地定義一個函數,傳入一個匿名函數會更加方便。當然,匿名函數也是一個函數對象,可以賦值給變量,也可以作為返回值返回。
偏函數
偏函數,可以通過設定函數的默認參數值來降低函數的調用難度。
我們都知道,在定義函數的時候可以設定默認參數值來簡化函數的調用難度,而偏函數就是可以把函數的某一參數改為默認參數,而不需要修改函數定義。
如int( )函數可以把字符串轉化為整數,其實int( )函數還有一個參數base,默認為10即默認按10進制轉化。>>>int('1234')???????????????????????????????????#按十進制轉換為十進制整數1234>>>int('1234',?base=8)???????????????????????????#按八進制轉換為十進制整數668>>>int('110011101',?base=2)??????????????????????#按二進制轉換為十進制整數413
如果我們需要轉換大量二進制的字符串時,就可以偏函數來降低函數的調用難度。>>>import?functools>>>int2?=?functools.partial(int,base=2)>>>int2('11000')24
用functools.partial( )來建立一個偏函數int2( ),此時int2( )就是默認按二進制來轉換字符串的新函數了。
實際上,在建立偏函數時,可以接受函數對象,*args可變參數,**kw關鍵字參數三個參數。>>>int2?=?functools.partial(int,'11000',base=2)>>>int2()24
這樣int2( )就變成按二進制來轉換'11000'了。在一些要傳入多個參數的函數中,我們可以設定默認傳入一些可變參數來簡化函數的調用。>>>max2?=?functools.partial(max,?10)????????????????#傳入默認參數10>>>max2(1,?2,?3)????????????????????????????????????#相當于在傳入參數的最左邊還有一個參數1010
作者:三貝_
鏈接:https://www.jianshu.com/p/afc8a03cba33
x
總結
以上是生活随笔為你收集整理的python偏函数和高阶函数_【Python入门】8.高阶函数之 匿名函数和偏函数的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: java中如何分隔字符串_Java中分割
- 下一篇: div html 下边加横线_HTML的
