匿名函式:為了解決那些功能很簡單的需求而設計的 「一句話函式」
#初始**
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]匿名函式與 max 混用(max(l))
dic=
(max(dic))
print(dic[max(dic,key=lambda
k:dic[k])])
#執行結果:
31121k3
100process finished with exit code 0
res = map(lambda x:x**2,[1,5,7,4,8])匿名函式與 map 混用for i in
res:
(i)#
執行結果125
4916
64
res = filter(lambda x:x>10,[5,8,11,9,15])匿名函式與 filter 混用for i in
res:
(i)#
執行結果
1115
'''面試題:匿名函式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)]
(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...