python 基礎 4 2 高階函式上

2022-09-16 07:03:10 字數 1352 閱讀 6001

一.高階函式

把函式當做引數傳遞的一種函式

1》map()函式

map函式是python內建的乙個高階函式,它接受乙個函式f和乙個list,並把list元素以此傳遞給函式f,然後返回乙個函式f處理完所有list元素的列表,如下所示:

#map()函式,傳入的必須是乙個可迭代的物件

lt = [1,2,3,4,5]

# lt = [1,2,3,4,5]

def f2(x):

return x*x

ml = map(f2,lt)

print type(ml)

print ml

>>>

[1, 4, 9, 16, 25]

2>reduce()函式

reduce()函式也是python內建的乙個高階函式,reduce()函式接收的引數和map()類似,乙個函式f,乙個list,但行為和map()不同,reduce()傳入的函式f必須接收兩個引數,第一次呼叫是把list的前兩個元素傳遞給f,第二次呼叫時,就是把前兩個list元素的計算結果當成乙個引數,list的第三個元素當成第二個引數,傳入f進行操作,以後以此類推,並返回最終結果值。

##reduce()函式

def f(x,y):

return x + y

print reduce(f,[1,2,3,4,5],10)

>>> 25

解釋:1.計算 a = f(1,2)的值為3

2.計算 b = f(a,3)的值為6

3,計算c = f(b,4)的值為10

4,計算d = f(c,5)的值為15

5,計算f(d,10)的值為25

其實就是相當於 1+2+3+4+5+10,最後10是乙個預設值,及最終在執行一次。

3》filter()函式

filter英文單詞就是過濾的意思,filter()函式是python內建的另乙個有用的高階函式,filter() 函式接收乙個函式f和乙個list,這個函式f的作用是對每個元素進行判斷,返回true或flase,filter() 根據判斷結果自動過濾不符合條件的元素,返回由符合條件元素組成的新list,例子如下:

###filter() 函式每次把可迭代物件的元素傳入進去,如果返回未true,則保留該元素,如果返回為false,則不保留.該函式是保留真的,過濾掉假的

a = [1,2,3,4,5,6]

def is_old(x):

return x%2 ==1

#帶入實參is_old=5 傳入

# print is_old(5)

#帶入實參,列表a傳入

print filter(is_old,a)

>>> true

>>> [1, 3, 5]

Python基礎 42 匿名函式lambda

lambda是乙個匿名函式,在定義函式的時候,不想給函式起乙個名字時可以使用匿名函式,用乙個變數儲存結果即可。通常這個 匿名函式是不會被重複使用的 語法 lambda 引數 表示式 注 不能有迴圈和return demo1定義乙個匿名函式 定義乙個匿名函式實現加法計算 sum res lambda ...

python基礎 高階函式

把函式作為引數傳入,這樣的函式稱為高階函式,高階函式是函式式程式設計的體現。函式式程式設計就是指這種高度抽象的程式設計正規化。在python中,abs 函式可以完成對數字求絕對值計算。abs 10 10round 函式可以完成對數字的四捨五入計算。round 1.2 1 round 1.9 2def...

python筆記 009 函式(上)

迭代是python最強大的功能之一,是訪問集合元素的一種方式 迭代器是乙個可以記住遍歷的位置的物件 迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退 迭代器有兩個基本的方法 iter 和 next 字串,列表或元組物件都可用於建立迭代器 numbers 1,2...