python 進階小筆記
函數式編程python
python支持的函數式編程編程
不是純函數式編程:容許有變量api
支持高階函數:函數也能做爲變量傳入閉包
支持閉包:有了閉包就能返回函數函數式編程
有限度地支持匿名函數函數
高階函數:能接受函數作參數的函數spa
變量能夠指向函數3d
函數的參數能夠接受變量blog
一個函數能夠接受另外一個函數做爲參數排序
- map()是python內置的高階函數,它接受一個函數f和一個list,並經過函數f依次做用在list上的每一個元素上,獲得一個新的list並返回
- capitalize() 首字母大寫,其他所有小寫
- reduce()函數也是python內置的一個高階函數,reduce()函數接受的參數和map()相似,一個函數f,一個list,但行爲和map()不一樣, reduce()傳入的函數f必須接收兩個參數,reduce()對list的每一個元素反覆調用函數f,並返回最終結果值
- reduce() 還能夠接收第3個可選參數,做爲計算的初始值。
- filter() 函數是python內置的另外一個有用的高階函數, filter()函數接收一個函數f和一個list,這個函數f的做用是對每一個元素進行判斷,返回true或者false,filter()根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list
- s.strip(rm)刪除s字符串中開頭、結尾處的rm序列的字符,當rm爲空時,默認刪除空白符
- python內置的sorted()函數可對list進行排序, 可是sorted也是一個高階函數,它能夠接收一個比較函數來實現自定義排序 比較函數的自定義是,傳入兩個待比較的元素x,y,若是x應該排在y的前面,返回-1,若是x應該排在y的後面,返回1;若是相等,返回0
- sorted函數也能夠對字符串進行排序,默認按照ASCII大小來比較
- Python的函數不但能夠返回int,str,list,dict等數據類型,還能夠返回函數
- python中閉包:內層函數引用了外層函數的變量(參數也算變量),而後返回內層函數的狀況,成爲閉包 closure
- 閉包的特色是返回的函數還引用了外層函數的局部變量,因此,要爭取使用閉包,就要確保引用的局部變量在函數返回後不能變
- 高階函數能夠接收函數作參數,有些時候咱們不須要顯示得定義函數,直接傳入匿名函數更方便 lambda x:x*x 匿名函數只能有一個表達式,不寫return,返回值就是該表達式的結果
- 裝飾器
歡迎關注本站公眾號,獲取更多信息