day16 python之匿名函式,遞迴函式

2022-05-25 01:15:12 字數 1746 閱讀 5193

匿名函式格式

函式名 = lambda

引數 :返回值

#引數可以有多個,用逗號隔開

#匿名函式不管邏輯多複雜,只能寫一行,且邏輯執行結束後的內容就是返回值

#返回值和正常的函式一樣可以是任意資料型別

我們可以看出,匿名函式並不是真的不能有名字。

匿名函式的呼叫和正常的呼叫也沒有什麼分別。 就是 函式名(引數) 就可以了~~~

匿名函式常常與內建函式配合使用,例如下面的**:

l=[3,2,100,999,213,1111,31121,333]

print

(max(l))

dic=

print(max(dic)) #k3#

找字典中值最大的key

print(max(dic,key=lambda k:dic[k])) #

k2

res = map(lambda x:x**2,[1,5,7,4,8])    #

map返回乙個迭代器

for i in

res:

print(i)

res = filter(lambda x:x>10,[5,8,11,9,15])    #

返回乙個迭代器

for i in

res:

print(i)

面試題練一練

現有兩個元組(('a'),('b')),(('c'),('d')),請使用python中匿名函式生成列表[,]

#

答案一test = lambda t1,t2 :[ for i,j in

zip(t1,t2)]

print

(test(t1,t2))

#答案二

print(list(map(lambda t:,zip(t1,t2))))

#還可以這樣寫

print([ for i,j in zip(t1,t2)])

答案

1.下面程式的輸出結果是:

d = lambda p:p*2t = lambda p:p*3x = 2x =d(x)

x =t(x)

x =d(x)

print

x2.現有兩元組(('

a'),('

b')),(('

c'),('

d')),請使用python中匿名函式生成列表[,]

3.以下**的輸出是什麼?請給出答案並解釋。

defmultipliers():

return [lambda x:i*x for i in range(4)]

print([m(2) for m in

multipliers()])

請修改multipliers的定義來產生期望的結果。

練習遞迴函式:在乙個函式裡在呼叫這個函式本身。

遞迴的最大深度:998.可以設定

import

sysprint(sys.setrecursionlimit(100000))

乙個遞迴函式的例子:

def

age(n):

if n == 1:

return 40

else

:

return age(n-1)+2

print(age(4))

Python全棧學習筆記day 16 匿名函式

匿名函式 為了解決那些功能很簡單的需求而設計的一句話函式 這段 def calc n return n n print calc 10 換成匿名函式 下面給出了乙個關於匿名函式格式的說明 函式名 lambda 引數 返回值 引數可以有多個,用逗號隔開 匿名函式不管邏輯多複雜,只能寫一行,且邏輯執行結...

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...

Python爬蟲day2 2 python函式詳解

1.認識python函式 函式的本質就是功能的封裝。使用函式可以大大提高程式設計的效率與程式的可讀性 2.區域性變數與全域性變數變數是有生效範圍的,這個生效範圍我們稱為作用域。作用域從變數出現開始到程式的最末的變數叫做全域性變數,作用域只在區域性的變數叫做區域性變數。3.函式引數使用詳解 函式的定義...