文末小編整理了2019最新流出的python400集學習資料希望對大家有幫助謝謝
「 函數式編程(Functional Programming)或者函數程序設計,是一種編程范型。」
它將計算機運算視為數學上的函數運算,並且避免使用程序狀態以及變量對象。
以上只是簡單的函數式編程的概念,只需簡單了解即可。
在Python中,函數式編程主要由幾個函數的使用構成:lambda(), map(), reduce(), filter()等。
01.lambda函數
lambda函數,又成為匿名函數。lambda函數只能有一個表達式,而不需要寫return來返回函數的值。當然,匿名函數也是一個函數對象,同樣可以把匿名函數賦值給一個變量。
也可以把匿名函數作為返回值來返回
可以看出,變量f就是一個lambda函數類型,需要使用f()來調用該函數。
02.map函數
map函數接收兩個參數,一個是函數,一個是Interable(可疊代序列),map函數依次將函數作用到序列的每個元素,並把結果作為新的Interable返回。
看一個例子:
一個簡單的列表解析,把列表a的每個元素都加2,用map函數可以寫為:
由於map函數返回的是一個惰性序列,需要通過list()等函數來調用它。
雖然上面的代碼看起來比直接寫for循環要複雜,但是當數據量很大的情況下,Python的for效率就不是很高了,而map的效率是可以接近C語言的。同時代碼也簡潔很多,簡直裝X神器
另一個小例子,把列表中的元素轉換為字符串,一條命令
03.reduce函數
它和map有些像,不過map是用於逐一遍歷,而reduce函數是用來遞歸計算的。
一個簡單的序列求和
對列表a的各個元素依次求和,再看一個自製的int()函數的例子
這是Python內置函數int的用法
我們通過reduce和map函數也可以實現如下
先用map函數來遍歷23465這個字符串列表,然後通過reduce函數遞歸應用列表每個元素到lambda函數。
04. filter函數
它同樣接收一個函數和一個序列,filter()把傳入的函數依次作用於每個元素,然後根據返回值是True還是False決定保留還是丟棄該元素。
使用這些函數,不僅可以讓我們的代碼更加簡潔,同時在大數據量或者計算密集時,能夠大大提高效率。
當然,這也和在linux新手面前使用VI命令行一樣,都是居家旅行,裝X神器呀
2019年最新python教程
如果你處於想學python或者正在學習python,那麼你手裡的教程應該已經不少了吧,但是是最新的嗎?
說不定你學了可能是兩年前人家就學過的內容,在這小編分享一波2019最新的python全套教程,共計約415集,免費分享給大家!
2019Python自學教程全新升級為《Python+數據分析+機器學習》,九大階段能力逐級提升,打造技能更全面的全棧工程師。