本文關鍵給大家介紹了python高階函數使用方法實例詳細說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發展,盡早漲薪
一、高階函數
函數定義
python中,函數名是自變量,下邊這一method函數名當做自變量,偏向1個計算出來的函數公式!因而函數名本身就是偏向函數的自變量,故自變量可偏向函數公式;
自變量可偏向函數公式,且函數的自變量可以接受自變量,那樣任何一個函數公式可以接受1個函數作為參數,這類函數公式就叫做高階函數
函數名可以作為傳參、也可以作為主要參數
def method(a,b): return a+b a=method print(a(1,4)) #輸出;5
(1)函數名作為參數
def fun(a): return a*a def fun1(a,b,c): return a(b)+a(c) print(fun1(fun(),1,5))#fun()作為參數,傳給fun1 #輸出:26
(2)函數名作為返回值
def fun(a): def fun2(b): return a*b return fun2() a=fun(1) print(a)#外部函數返回的是一個函數對象,也就是一個變量,然后作為函數對象傳參,獲得內部函數的返回值 print(a(3)) #輸出:<function method.<locals>.method2 at 0x02B5E9C0>
6
二、常用的高階函數
map、filter、reduce
先講下匿名函數lambda,
語法格式:lambda[形參1,形參2,...:表達式]
表達式執行后,返回冒號后表達式;
x=1
lambda x:x+3
(1)map(function,iterable)
它第一個要傳的元素是函數名或lambda匿名函數表達式,第二個要傳的是可迭代對象;
python 2.x返回列表,python 3.x返回迭代器
array=[1,4,7] a=map(lambda x:x+1,array) print(a) print(list(a)) 輸出:<map object at 0x02AB11B0> [2,5,8]
map()函數的作用就是將可迭代對象里的每個元素進行函數操作,然后將元素操作后所組成的可迭代對象返回
(2)filter(function,iterable)
同樣,它第一個要傳的元素是函數名或lambda匿名函數表達式,第二個要傳的是可迭代對象
array=[1,4,7] a=filter(lambda x:x+1,array) print(a) print(list(a)) 輸出:<filter object at 0x02AB11B0> [1,4,7] array=[1,4,7] a=filter(lambda x:x%2==0,array) print(a) print(list(a)) 輸出:<filter object at 0x02AB11B0> [4]
filter函數,就是將可迭代對象的元素帶入函數,返回True的對象,一般用于篩選使用,省略for循環
(3)reduce(function,iterable)
它傳的是2個元素,將前2個元素帶入函數中,然后將返回值作為一個元素,與第三個元素進行運算,直到結束返回最后結果。
reduce(function,iterable[,initializer]),從左到右對一個序列的項進行累計
reduce()函數在python2中是內置函數,在python3中放到了functools模塊下:
from functools import reduce array=[1,2,3,4,5] result=reduce(lambda x,y:x+y,array) print(result) #結果:15 1+2=3 3+3=6 6+4=10 10+5=15
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129061.html
摘要:可以通過定位參數和關鍵字參數傳入的形參多數函數的參數屬于此類。就像數據格式化一樣數據帶上標簽自行創建函數它會自行創建函數。創建的函數會在對象上調用參數指定的方法自己創建函數凍結參數這個高階函數用于部分應用一個函數。 高階函數 接受函數為參數,或者把函數作為結果返回的函數是高階函數 def reverse(word): return word[::-1] ...
摘要:本文重點了解函數在中是一等對象了解中的可調用對象掌握正確定義函數參數的方法了解和中支持函數式編程的方法。歸約函數定義能夠接受一個可迭代對象并返回單個結果的函數是歸約函數。 導語:本文章記錄了本人在學習Python基礎之函數篇的重點知識及個人心得,打算入門Python的朋友們可以來一起學習并交流。 本文重點: 1、了解函數在Python中是一等對象;2、了解Python中的可調用對象;3...
摘要:本文重點了解函數在中是一等對象了解中的可調用對象掌握正確定義函數參數的方法了解和中支持函數式編程的方法。歸約函數定義能夠接受一個可迭代對象并返回單個結果的函數是歸約函數。 本文章記錄了本人在學習Python基礎之函數篇的重點知識及個人心得,歡迎打算入門Python的朋友與我一起學習交流。。 本文重點: 1、了解函數在Python中是一等對象;2、了解Python中的可調用對象;3、掌握...
摘要:函數內省的內容到此結束。函數式編程并不是一個函數式編程語言,但通過和等包的支持,也可以寫出函數式風格的代碼。 《流暢的Python》筆記。本篇主要講述Python中函數的進階內容。包括函數和對象的關系,函數內省,Python中的函數式編程。 1. 前言 本片首先介紹函數和對象的關系;隨后介紹函數和可調用對象的關系,以及函數內省。函數內省這部分會涉及很多與IDE和框架相關的東西,如果平時...
摘要:今天深入接觸了中的函數,發現函數比我想象的要高深。介紹的幾個高階函數有內置的和函數,模塊中的。可調用對象即能被調用運算符應用的對象,可使用內置的函數檢測。函數的三個屬性和放置了函數對象參數的一些信息。 今天深入接觸了 Python 中的函數,發現函數比我想象的要高深。 Python 中萬物皆對象,這一章就介紹了函數作為對象的一些屬性。首先是測試所有對象共有的屬性__doc__,可以看到...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02