一、什么是高階函數
在計算機編程語言中,高階函數指的是接受函數作為輸入或輸出的函數。
二、高階函數的特性
函數本身也可以賦值給變量 變量可以指向函數
f = abs #abs()取絕對值函數,將函數賦給變量f
print(f(-10)) #輸出結果-10的絕對值
三、內置高階函數map()
map():接收兩個參數,一個是函數 一個是序列
map()將傳入的函數依次作用到序列的每個元素,并且把結果作為新的序列返回
例:對一個序列[-1,3,-4,-5]的每一個元素求絕對值
代碼
:
結果
:
例:隨機生成10個元素,對每個元素求階乘。
代碼
:
結果
:
四、內置高階函數reduce()
reduce():把一個函數作用在一個序列上,這個函數必須接收兩個參數 reduce()把結果繼續和序列的下一個元素做累積計算
reduce(f,[x1,x2,x3,x4]) = f(f(x1,x2),x3),x4)
注意 :
python2中:reduce是內置函數
python3中:from functools import reduce
例:使用reduce函數計算1~10類乘和。
代碼
:
結果
:
五、filter過濾函數
和map()類似的,也接收一個函數和一個序列
但是和map()不同的是,filter()把傳入的函數依次作用于每個元素,然后根據返回值是True或者False決定保留還是丟棄該元素
六、例題
1、有一個整數列表(10個元素),要求調整元素的順序
把奇數放在前面 偶數放在后面將用戶輸入的數字字符串(str)轉換為整型(int)數字輸出,若輸入的數字字符串中包含小數點則轉換為浮點型(float)數字輸出。
代碼
:
結果
:
2、隨機生成一個整數列表(10個元素),要求調整元素的順序
要求:把奇數放在前面,偶數放在后面。
代碼 :
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
