python之高階函式

2021-08-31 03:44:41 字數 2393 閱讀 2245

函式程式設計及其優勢:

無***,不修改狀態,表示式形式,專注與計算,接近自然語言。

便於**熱公升級,無狀態不用考慮併發過程中的資源搶占及鎖問題。

函式也是物件,也可以賦值給變數,當然函式的引數也可以為另一函式。

map()是 python 內建的高階函式,它接收乙個函式 f 和乙個 list,

並通過把函式 f 依次作用在 list 的每個元素上,得到乙個新的 list 並返回。

舉例:def sum_1w(list_1):

ret = 0

for i in list_1:

ret +=i

return ret

nums = [

[1, 3, 4], #8

[2, 4, 5], #11

[0, 0, 1] # 1

]ret = map(sum_1w, nums) #呼叫sum_1w函式

print(list(ret))

sorted() 函式對所有可迭代的物件進行排序操作

sort 與 sorted 區別:

sort 是應用在 list 上的方法,sorted 可以對所有可迭代的物件進行排序操作。

list 的 sort 方法返回的是對已經存在的列表進行操作,無返回值,

而內建函式 sorted 方法返回的是乙個新的 list,而不是在原來的基礎上進行的操作。

舉例:a = [1,2,3,4,56496,496,46,164,61,94,61,6466,4]

ret = sorted(a)

print(ret) #預設是公升序

還可以加引數來控制根據什麼來排序,如下:

a = [1,2,3,4,56496,496,46,164,61,94,61,6466,4]

ret = sorted(a,reverse=true)

print(ret) #降序,false反之是公升序

可以用key關鍵字來指定最終根據什麼來排序:

a = [1,2,3,4,56496,-496,46,164,-61,94,61,6466,4]

ret = sorted(a,key=abs,reverse=false) #abs關鍵字排序

print(ret)

cmp_to_key,將乙個比較函式轉換關鍵字函式:

需要先讀入from functools import cmp_to_key

from functools import cmp_to_key

def sum_name_score(x,y):

return x-y

num = [1,9,3,6,741,8,526,2,7]

ret = sorted(num,key=cmp_to_key(sum_name_score))

print(ret)

filter() 函式用於過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組

成的新列表。該接收兩個引數,第乙個為函式,第二個為序列,序列的每個元

素作為引數傳遞給函式進行判,然後返回 true 或 false,最後將返回 true 的元素放到新列表中。

舉例:num = 'hello a in a cc'

ret = filter(lambda x:x!='a',num)

py = ''.join(ret)

print(py) #hello in cc

def quchogn(n):

return n not in 'a in a cc'

num = 'hello a in a cc'

ret = filter(quchogn,num)

py = ''.join(ret)

print(py) #hello

reduce() 函式會對引數序列中元素進行累積。

函式將乙個資料集合(鍊錶,元組等)中的所有資料進行下列操作:用傳給 reduce 中

的函式 function(有兩個引數)先對集合中的第 1、2 個元素進行操作,得到的結果再

與第三個資料用 function 函式運算,最後得到乙個結果。

舉例:from functools import reduce

num = [41,5,52,55,2,1,7]

ret = reduce(lambda x,y:x+y,num) #41+5=46+52=98+55.........=163

print(ret)

def fun(x,y):

return x+y

num_a = [41,5,52,55,2,1,7]

ret = reduce(fun,num_a)

print(ret)

Python之高階函式

一 什麼是高階函式 函式作為實參傳遞給函式的或者函式名為返回值的函式稱為高階函式。1 實參傳遞給函式 2 函式名為返回值 二 系統內建的高階函式 1 map函式 至少需要兩個引數,第乙個引數是函式名,第二個引數是序列 str,list,tuple map功能 把序列中的每乙個元素作為引數,傳給函式進...

Python之高階函式

做過swift開發的童鞋都知道,在swift中有許多的高階函式 map,filter,reduce,zip等 這些在開發中讓我們節省大量 python中同樣有許多的內建函式,但是這裡也只介紹幾個常用的高階函式 根據提供的函式對指定序列做對映,並返回對映後的序列 map function,iterab...

python之高階函式

abs與abs 的區別 abs 返回值 abs 返回整個函式 求絕對值 print 求出來的絕對值為 abs 11 函式本身可以賦值給變數,變數也可以指向函式 呼叫函式來求絕對值 f abs print 求出來的絕對值為 f 10 傳遞的函式包括函式名 def fun x,y,f return f ...