首頁 > 後端開發 > Python教學 > 實例詳解python高階函數的使用

實例詳解python高階函數的使用

零到壹度
發布: 2018-05-15 14:20:23
原創
2491 人瀏覽過

這篇文章給大家分享的是實例詳解python高階函數的使用,內容挺不錯的,希望可以幫助到有需要的朋友。

函數參數問題

#三種基本狀況

  • fun(a,b)

  • #fun(a,b)    b是可重複物件

  • fun(a,**b)    b是具有檢索式迭代對象,在函數體內部解析的時候相當字典

ls = [i for i in range(10)]
#print(ls)
def fun1(a,*b):
    for i in b:
        print(a,i)
#fun1(1,*ls)

def fun2(name,age,**kw):
    print("name:",name,"age:",age,"other:",kw)

fun2('fanhaitao','26',参数= 'random')
登入後複製
**kw参数把键值对转换成字典的形式
登入後複製

#匿名函數

lambda

沒有return回傳值,回傳值就是表達式的值

函數沒有名字,不用擔心名字衝突

匿名函數也是函數對象,也可以把匿名函數賦值給一個變量,在利用變數來呼叫該函數

fun3 = lambda x:x+1
print(fun3(99))

#100
fun4 = lambda x,y :x*x + y*y
print(fun4(3,4))
#25
登入後複製
裝飾器@

這種在程式碼運行期間動態增加功能的方式,稱為「裝飾器」(Decorator)

沒有參數的裝飾器

#定义一个装饰器
def log(func):
    def wrapper(*args,**kw):
        print('call %s()' % func.__name__)
        return func(*args,**kw)
    return wrapper
@log
def now():
    print('2018-3-29')
    
now()
登入後複製

裝飾器內部邏輯關係(呼叫順序):log() -> return wrapper() -> return func() -> now()

含參數的裝飾器

#定义一个装饰器
def log(text):
    def decorator(func):
        def wrapper(*args,**kw):
            print('%s %s():' % (text,func.__name__))
            return func(*args,**kw)
        return wrapper
    return decorator
@log("可爱的参数")
def now():
    print('2018-3-29')

now()
登入後複製

BiF內建函數

zip:將兩個迭代物件合成一個迭代物件

註:多餘的沒有配對到的變數會被捨棄
  • a = [1,2,3]
    b = 'abcde'
    for i in zip(a,b):
        print(i)
    for i,j in zip(a,b):
        print("Index:",i,";Item:",j)
    登入後複製

  • enumerate:返回的是迭代對象,由位置+元素構成
  • for i,j in enumerate('abcde'):
        print(i,j)
    登入後複製

filter:過濾函數

兩個參數,第一個是參數,第二個是可迭代對象,返回的值也是可迭代對象;參數中迭代對像在函數中是True是,值會保留,否者pass
  • print(list(filter(lambda x:(x*x+x+2)%8 == 0,range(100))))
    登入後複製

    map

  • 用法和filter類似,差異如下:

參數裡的函數對每個迭代物件操作

#傳回被操作過的物件

#

print(list(map(lambda x:x**2,range(5))))
登入後複製

reduce

#在functools庫裡

func接收2個參數,

#reduce把結果繼續和序列的下一個元素做累積計算######
from functools import reduce
add = lambda x,y:x+y
ls = [i for i in range(101)]
print(reduce(add,ls))
登入後複製
#######5050###############相關推薦:##############Python之高階函數##### #############Python函數與高階語法集 ###################python函數高階用法#########################################################################

以上是實例詳解python高階函數的使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板