day16 高階函式

2022-02-13 06:16:47 字數 2974 閱讀 8590

匿名函式:

高階函式

滿足倆個特性任意乙個即為高階函式

1.函式的傳入引數是乙個函式名

2.函式的返回值是乙個函式名

map:

num_l=[1,2,10,5,3,7]

#lambda x:x+1

def add_one(x):

return x+1

#lambda x:x-1

def reduce_one(x):

return x-1

def map_test(func,array):

ret =

for i in num_l:

res = func(i)

return ret

print(map_test(add_one,num_l)) #[2, 3, 11, 6, 4, 8]

print(map_test(lambda x:x+1,num_l)) #[2, 3, 11, 6, 4, 8]

num_l=[1,2,10,5,3,7]

res=map(lambda x:x+1,num_l) #[2, 3, 11, 6, 4, 8]

msg='linhaifeng'

print(list(map(lambda x:x.upper(),msg))) # ['l', 'i', 'n', 'h', 'a', 'i', 'f', 'e', 'n', 'g']

filter:

movie_people=['sb_alex','sb_wupeiqi','linhaifeng','sb_yuanhao']

def filter_test(array):

ret=

for p in array:

if not p.startswith('sb'):

return ret

res=filter_test(movie_people)

print(res) #['linhaifeng']

movie_people=['alex_sb','wupeiqi_sb','linhaifeng','yuanhao_sb']

def sb_show(n):

return n.endswith('sb')

def filter_test(func,array):

ret=

for p in array:

if not func(p):

return ret

res=filter_test(sb_show,movie_people)

print(res) #['linhaifeng']

#終極版本

movie_people=['alex_sb','wupeiqi_sb','linhaifeng','yuanhao_sb']

def sb_show(n):

return n.endswith('sb')

#--->lambda n:n.endswith('sb')

def filter_test(func,array):

ret=

for p in array:

if not func(p):

return ret

res=filter_test(lambda n:n.endswith('sb'),movie_people)

print(res) #['linhaifeng']

#filter函式

movie_people=['alex_sb','wupeiqi_sb','linhaifeng','yuanhao_sb']

print(filter(lambda n:not n.endswith('sb'),movie_people)) #

movie_people=['alex_sb','wupeiqi_sb','linhaifeng','yuanhao_sb']

res=filter(lambda n:not n.endswith('sb'),movie_people)

print(list(res)) #['linhaifeng']

print(list(filter(lambda n:not n.endswith('sb'),movie_people))) # ['linhaifeng']

reduce:

num_l=[1,2,3,100]

def reduce_test(func,array,init=none):

if init is none:

res=array.pop(0)

else:

res=init

for num in array:

res=func(res,num)

return res

print(reduce_test(lambda x,y:x*y,num_l,100)) #60000

#reduce函式

from functools import reduce

num_l=[1,2,3,100]

print(reduce(lambda x,y:x+y,num_l,1)) #107

print(reduce(lambda x,y:x+y,num_l)) #106

#print(reduce(function,sequence,initial)) #函式,序列,初始值

day16 匿名函式

匿名函式 函式名 lambda 引數1,引數2,返回值 注意 匿名函式不允許換行 匿名函式返回值和正常函式一樣可以是任意資料型別 def add x,y return x y add lambda x,y x y print add 3,6 dic def func num return dic n...

實習日記 Day16

今日份新想法 今天不在公司寫實習日記啦,在回學校的路上寫 今日地鐵 思 今天中午飯後,帶著我去了公司 附近的公園遛彎兒。一路走得飛快,興致勃勃。跟他的健步比起來,我一點都沒有年輕人該有的朝氣與活力 這才上班半個月,我現在週末的狀態就完全不比往日,變得昏昏欲睡,萎靡不振。在辦公室久坐,的確是不行啊。今...

每日演算法 day 16

那些你早出晚歸付出的刻苦努力,你不想訓練,當你覺的太累了但還是要咬牙堅持的時候,那就是在追逐夢想,不要在意終點有什麼,要享受路途的過程,或許你不能成就夢想,但一定會有更偉大的事情隨之而來。mamba out 2020.2.28 思路 素數篩選 dfs 組合型列舉 有個很重要的一點就是確保你的dfs在...