python高階函式

2021-09-14 05:02:19 字數 1869 閱讀 9177

1.高階函式

-實參是乙個函式名

-函式的返回值是乙個函式

print(abs(-11))

#函式本身也可以賦值給變數 變數可以指向函式

f = abs

print(f(-10))

def fun(x,y,f):

return f(x),f(y)

print(fun(-10,34,abs))

2.map函式

「」"map()函式 接收兩個引數 乙個是函式 乙個是序列

map將傳入的函式依次作用到序列的每個元素 並且把結果作為新的序列返回

「」"#對於序列[-1,3,-4,-5]的每個元素求絕對值

import random

#print(list(map(abs,[-1,3,-4,-5])))

#對於序列的每個元素求階乘

def factoria(x):

「」「對x求階乘」""

res = 1

for i in range(1,x+1):

res = res * i

return res

li = [random.randint(2,7) for i in range(10)]

print(list(map(factoria,li)))

3.reduce函式

「」"reduce():把乙個函式作用在乙個序列上 這個函式必須接收兩個引數

,reduce把結果繼續和序列的下乙個元素做累積計算

reduce(f,[x1,x2,x3,x4,x5] = f(f(f(x1,x2),x3),x4)

python2.x:reduce是內建函式

python3.x:from functools import reduce

「」"from functools import reduce

def multi(x,y):

return x*y

print(reduce(multi,range(1,4)))

def add(x,y):

return x+y

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

4.filter函式

「」"filter過濾函式

和map()類似,也接收乙個函式和乙個序列

但是和map()不同的是,filter()把傳入的函式依次作用於

每個元,然後根據返回值是true還是false決定保留還是丟棄該元素

「」"def isodd(num):

if num % 2==0:

return true

else:

return false

print(list(filter(isodd,range(100))))

5.sorted函式6.匿名函式

「」"匿名函式的關鍵字為lambda

冒號前面的是形參 冒號後面的是返回值

「」"from functools import reduce

#lambda x, y: x + y

#def add(x,y):

print(reduce(lambda x, y: x + y,[1, 2, 3, 4, 5]))

#def mypow(x):

return x**2

print(list(map(lambda x:x**2,range(5))))

#def is_ood(num):

return num %2==0

print(list(filter(lambda x:x%2==0,range(100))))

python 函式高階 python 函式高階

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

Python高階 函式高階

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

python 函式 高階函式

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