python中的lambda函式和map函式

2021-09-17 18:31:07 字數 2233 閱讀 7124

這幾天在回顧一下map和lambda函式,突然發現這兩個有點好像,豬腦子就卡殼了。還是以前學的不牢啊!只好重新用自己的感想寫這麼一遍!

1、lambda函式

他就是個沒有名字的函式,比如匿名信這種。我們能在某一函式引數條件中直接呼叫他、或者借用其返回的實體構成新的函式名如下。

比如說  lambda x,y: x+y  就是說我的函式輸入x,y,返回x+y

y=lambda a,b,c:a+b+c

print('\n',y(1,2,3))

結果為6

仔細看看,是不是y成為了新的函式名?!

2、map函式

map就是對映的意思,他肯定是將兩種東西結合對映為某乙個結果。他就是接收乙個函式function和乙個list列表,並通過把函式f依次作用在list的每乙個元素,從而得到乙個新的list返回(py3中返回乙個map物件,用list函式轉換一下即可)

def fib_recur(n):

if n<=1:

return n

else:

return fib_recur(n-1)+fib_recur(n-2)

x=input().strip().split()

n=list(map(int, x))[0]

for i in range(1, n):

print(fib_recur(i),end=' ')

注意哈這個x必須是列表,int則表示函式了,當然也可以其他函式命名

def fib_recur(n):

if n<=1:

return n

else:

return fib_recur(n-1)+fib_recur(n-2)

def ex(c):

return int(c)

x=input().strip().split()

n=list(map(ex, x))[0]

for i in range(1, n):

print(fib_recur(i),end=' ')

注意他是自動迭代地對x列表的每乙個元素操作,也就是說map自帶迭代器!

3、map函式和lambda函式結合

顯然只用改變map函式中的函式體就可以,無非就是函式體沒有了實名,將lambda放於map的引數條件之中

def fib_recur(n):

if n<=1:

return n

else:

return fib_recur(n-1)+fib_recur(n-2)

def ex(c):

return int(c)

##x=input().strip().split()

##n=list(map(ex, x))[0]

####for i in range(1, n):

## print(fib_recur(i),end=' ')

x=input().strip().split()

n=list(map(lambda a:int(a), x))[0]

for i in range(1, n):

print(fib_recur(i),end=' ')

在本**list(map(lambda a:int(a), x)) 這一句只用注意兩個點:

1) lambda引數只能是乙個引數標量,因為map是自動對列表x的元素迭代的

2)x為一維情況,所以他的每乙個元素是標量

針對x為二維情況,博主暫時沒想到好的解決辦法,只能是x[2]來選擇其中的乙個向量列表。

def fib_recur(n):

if n<=1:

return n

else:

return fib_recur(n-1)+fib_recur(n-2)

x=[[1,2,3],[2,4,6],[3,6,9]]

n=list(map(lambda a:int(a), x[2]))[2]

for i in range(1, n):

print(fib_recur(i),end=' ')

python的map函式和lambda函式

map函式的功能是根據提供的函式對指定序列做對映,就是對第二個引數的每乙個值執行第乙個引數所指定的函式 lambda是定義乙個匿名函式 crsusr rws1270149 python study cat mypy02.py usr bin python3.7 import sys,string,o...

Python中的defaultdict函式

用於產生乙個帶有預設值的dict。主要針對key不存在的情況下,也希望有返回值的情況。a dict a k1 1 a a k2 traceback most recent call last file line 1,in keyerror k2 對於普通的dict,key不存在就報錯。但是對於def...

python中ground truth的函式

機器學習包括有監督學習 supervised learning 無監督學習 unsupervised learning 和半監督學習 semi supervised learning 在 有監督學習中,資料是有標註的,以 x,t 的形式出現,其中x是輸入資料,t是標註.正確的t標註是ground t...