Python 匿名函式

2022-04-29 05:33:11 字數 2365 閱讀 7218

匿名函式:為了解決那些功能很簡單的需求而設計的  「一句話函式」

#

初始**

defcalc(n):

return n**n

print(calc(10)) #

換成匿名函式

上圖是對calc這個匿名函式的分析

#

關於匿名函式格式的說明

函式名 = lambda

引數 :返回值(相當於函式體)

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

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

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

由此可見:

匿名函式並不是真的沒有名字。

匿名函式的呼叫和正常的呼叫也沒有什麼分別。 

#

把以下函式變成匿名函式

defadd(x,y):

return x+y

#匿名函式

add = lambda x,y : x+y

匿名函式練習

上面是匿名函式的函式用法。

除此之外,匿名函式也不是浪得虛名。在和其他功能函式合作的時候~~~它真的可以匿名

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

print

(max(l))

dic=

print

(max(dic))

print(dic[max(dic,key=lambda

k:dic[k])])

#執行結果:

31121k3

100process finished with exit code 0

匿名函式與 max 混用

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

for i in

res:

print

(i)#

執行結果125

4916

64

匿名函式與 map 混用

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

for i in

res:

print

(i)#

執行結果

1115

匿名函式與 filter 混用

'''

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

d = lambda p:p*2

t = lambda p:p*3

x = 2

x = d(x)

x = t(x)

x = d(x)

print x

''''''

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

''''''

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

def multipliers():

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

print([m(2) for m in multipliers()])

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

'''

面試題:匿名函式

#

第一題

24process finished with exit code 0

#第二題

t1 = (('

a'), ('b'

))t2 = (('

c'), ('d'

))t3 =zip(t1, t2)

print(list(lambda t : , t3))

#第三題

#答案一

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)])

答案——面試題: 匿名函式

python匿名函式

例如 a 100 b a 這樣100只會有乙份,a和b只是指向了同乙個位置,改變a的值b也會跟著改變 當我們用id 變數 檢視兩變數的位址是相同的 可變型別 列表,字典 不可變型別 除了可變型別剩下的都是不可變型別 不可變型別舉例 a world 可以輸出a 0 整個字串也可以修改,但是要修改a 0...

python 匿名函式

在python中,對匿名函式提供了有限支援。還是以map 函式為例,計算f x x2時,除了定義乙個f x 的函式外,還可以直接傳入匿名函式 map lambda x x x,1,2,3,4,5,6,7,8,9 1,4,9,16,25,36,49,64,81 通過對比可以看出,匿名函式lambda ...

python 匿名函式

1.匿名函式定義規則 lambda 形參 返回值 def fun args,kwargs return args,kwargs print lambda args,kwargs args,kwargs def add x,y return x y from functools import redu...