python 函式 高階函式

2021-09-22 13:55:36 字數 1199 閱讀 3824

filter()函式是 python 內建的另乙個有用的高階函式,filter()函式接收乙個函式 f 和乙個list,這個函式 f 的作用是對每個元素進行判斷,返回 true或 false,filter()根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list。

例如判斷奇偶數

def is_odd(x):

return x % 2 == 1

filter(is_odd, [1, 4, 6, 7, 9, 12, 17])

輸出結果:

[1, 7, 9, 17]

filter在python3.x中生成是迭代器

filter在python2.x中生成是列表

map函式的用法:

在python3.x中會返回乙個迭代器

在python2.x中會返回乙個列表

在python2.x中

def f(x):

return x*x

print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])

輸出結果:

[1, 4, 9, 10, 25, 36, 49, 64, 81]

在python3.x中

def f(x):

return x*x;

a=map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9]);

l=;for i in a:

print(l);

輸出結果:

[1, 4, 9, 10, 25, 36, 49, 64, 81]

def f(x,y):

return x+y;

reduce(f, [1, 3, 5, 7, 9]);

輸出結果:

25還可以傳入第三個引數,作為計算的初值。

reduce(f, [1, 3, 5, 7, 9], 100)

輸出結果:

125python3.x中已經移除reduce()函式,需要從functools模組中進行呼叫

reduce()函式也是python內建的乙個高階函式。reduce()函式接收的引數和 map()類似,乙個函式 f,乙個list,但行為和 map()不同,reduce()傳入的函式 f 必須接收兩個引數,reduce()對list的每個元素反覆呼叫函式f,並返回最終結果值

python 函式高階 python 函式高階

形參角度 萬能引數 動態接收位置引數 args 動態接收關鍵字引數 kwargs 的魔性用法 函式定義時 代表聚合。他將所有的位置引數 聚合成乙個元組,賦值給了args 函式定義時 將所有的關鍵字引數聚合成乙個字典中,將這個字典賦給了 kwargs 和 在函式的呼叫時 代表打散 僅限關鍵字引數 de...

Python高階 函式高階

閉包 closure 常規函式中可以在函式的引數中新增引數的預設值來簡化函式的操作,偏函式也可以做到這一點,而且會更加的方便管理函式的操作。通過內建模組functools的partial進行定義和處理 語法結構 新函式名稱 functools.partial 函式名稱,預設賦值引數 例如 全域性函式...

Python函式 高階函式 遞迴函式

1.遞迴函式 1.1體現 函式a內部,繼續呼叫函式a 概念 傳遞 回歸 1.2注意事項 遞迴函式一定是有傳遞有回歸的。1.3案例 求乙個數值的階乘 階乘 1 n的階乘就是從1乘到9 可以使用迴圈來解決 temp 1 for i in range 1,10 temp temp i print temp...