幾個高階函式

2021-09-25 21:56:17 字數 2075 閱讀 4896

------------(高階函式)

把函式當成引數進行傳遞的函式。

1.sorted(iterable,key,reverse) //其中的key是乙個函式引數。

sorted(list1,key = 函式) ------>通過key這個函式指定規則

dict1 =

對dict1按分數排序

sorted(dict1) ------> 此時按建排序

result = sorted(dict1.items(),key = lambda x:x[1])

result ----->是乙個列表,裡面巢狀元組。

dict(result) ------->強轉為字典

2.map(function,*iterable) ----對映(函式,可迭代的物件)

給乙個可迭代的物件,通過function的作用,將其轉換成乙個新的物件。

map1 = map(lambda x : x ** 2,[1,2,3,4,5]) ---->返回乙個map物件。

print(map1) ----->檢視結果,必須強轉成需求。list(map1)

map0 = map(lambda x : x ** 2,[1,2,3],[4,4,5])

3.filter(function or none ,iterable):

------>返回值是乙個filter object

------>需要對返回值進行強轉,如:list(filter).......

------>function函式的返回值必須是bool型別。

numbers = [2,3,4,5,5,0,6,6]

filter = filter(none,numbers) ----->返回乙個filter物件,返回值必須為真。

filter = filter(lambda x:a%2==0,numbers) ----->返回乙個filter物件,返回值必須為真。

list1 = ['hello', 30, '80', 50, 'hi100', '99', 'yes']

filter(lambda x:isinstance(x,int) or x.isdigit(),list1)

4.reduce(function,iterable): 返回乙個value

from functools import reduce ------>使用前必須匯入包

引數function是函式,此函式的引數必須是兩個lambda x,y:x*y

引數iterable是乙個可迭代的物件。

reduce(lambda x,y:x*y,range(1,6)) ----->計算階乘

list = [3,5,6,5,4]

result = reduce(lambda x,y:x+y,list)

5.functools模組:主要是使用三個函式。

from functools import partial,wraps,reduce	

@reduce(), @partial()[偏函式], @wraps()

6.partial():偏函式

是通過將乙個函式的部分引數預先繫結為某些值,從而得到乙個

新的具有較少可變引數的函式。

int1 = partial(int,base=8)

int1('123') ----將'123'傳給int變為整數型別,

然後將8進製數轉為10進製。

def add(x,y):

return x+y

add1 = partial(add,3) ------> 固定乙個值

r = add1(8) --------> 傳入乙個值

7.wraps():消除裝飾器帶來的一些***。---->名字和文件的不一致性。

裝飾器內層函式上加上,@wraps(函式名)

obj.__name__ ----->獲取函式名

obj.__doc__ ----->獲取文件注釋

高階函式與Python3幾個內建函式

這篇文章簡談高階函式與python3中幾個內建函式的例題 高階函式就是能接受函式作引數的函式。我們知道變數可以指向函式,而函式的引數可以接受變數,乙個函式可以接收另乙個函式作為引數,能接受函式作為引數的函式就是高階函式。比如說,乙個簡單的高階函式 def shu 1 print 宇宙之大 def s...

Python高階 來談談幾個常用的內建函式

匿名函式 lambda表示式 在python中,函式可以算的上是 一等公民 了,我們先回顧下函式的優點 減少 重複量 模組化 但是我們有沒有想過,如果我們需要乙個函式,比較簡短,而且只需要使用一次 無需重複呼叫 那還需要定義乙個有名字的函式麼?答案是否定的,這裡我們就可以使用匿名函式來實現這樣的功能...

Vim的幾個高階玩法

在linux中編輯檔案的場景非常之多,掌握一些關鍵命令和技巧。能夠大大提高效率,使用體驗也順暢很多。1976年由bill joy完成編寫vi,並由bsd發布。從2006年開始,作為 單一unix規範 的一部分,vi或vi的一種變形版本一定會在類unix系統中找到。vim是vi的乙個變形版本,功能更加...