高階函式和匿名函式

2021-08-10 05:12:31 字數 1599 閱讀 4862

1.高階函式

高階函式就是把函式當成引數傳遞的函式。

例如:

def add(x,y,f):

return f(x) + f(y)

print add(-4,3,abs)

結果是 7

map()函式

map()函式的python內建的高階函式,他接受乙個函式f 和引數list,並把list的元素傳遞給函式f,然後返回乙個函式f處理完list元素的列表。

例如:

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

def fun1(x):

return x*x

ml = map(fun1,lt)

print ml

最終返回的結果是個列表

reduce()函式

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

例如:

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

def fun2(x,y):

return x + y

res = reduce(fun2,lis,10)

print res

計算結果是

解釋:  

1.a =  fun2(1,2)  值為3

2.b =  fun2(a,3)  值為 6

3.c =  fun2(b,4)  值為 10

4.d = dun2(c,5) 值為15 

5,計算 f(d,10) 結果是25、

# 傳入的函式必須接收2個引數。

filter()函式

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

舉例:

lis2 = [1,2,3,4,5,6,7,8,9,10]

def fun3(x):

return x % 2 == 0

rus = filter(fun3,lis2)

print (rus)

返回結果:

[2, 4, 6, 8, 10]

2.匿名函式

顧名思義就是沒有名字的函式,lambda是一種快速定義單行的最小函式,可以用在任何需要函式的地方。

例如:

def sum(x,y):

return x + y

m = lambda x,y:x+y

print (m(4,5))

print type(m)

Scala高階 匿名函式和高階函式

scala版本 2.10.5 一 函式是第一等公民 1 把函式作為實參傳遞給另外乙個函式。2 把函式作為返回值。3 把函式賦值給變數。4 把函式儲存在資料結構裡。在scala中,函式就像普通變數一樣,同樣也具有函式的型別。二 函式型別 1 定義 在scala語言中,函式型別的格式為a b,表示乙個接...

python高階函式和匿名函式

高階函式 允許將函式本身作為引數傳入另乙個函式 允許返回乙個函式。允許返回乙個函式。map 函式 map的第乙個引數為自定義函式,第二個引數為自定義可迭代物件 例子 定義乙個函式f2求平方,使用map函式,求list1的值的平方,list1平方規則按照f2函式執行,返回結果型別為list。list1...

Scala高階函式和匿名函式

目錄 一 函式是第一等公民 二 函式型別 1 定義 2 3 執行結果 三 高階函式 1 定義 2 3 執行結果 四 匿名函式 1 匿名函式為1個引數。2 匿名函式中定義多個引數 3 不給匿名函式設定引數 五 匿名函式例項 1 把函式作為實參傳遞給另外乙個函式。2 把函式作為返回值。3 把函式賦值給變...