Python之匿名函式

2022-07-31 19:21:08 字數 1645 閱讀 3312

也叫 lambda 表示式

a.匿名函式的核心:一些簡單的需要用函式去解決的問題,匿名函式的函式體只有一行

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

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

d.匿名函式不支援複雜的邏輯判斷

e.一般跟其他函式搭配使用

普通函式與匿名函式的對比:

#

普通函式

defadd(a,b):

return a +b

print(add(2,3))

#匿名函式

add = lambda a,b : a + b #

相當與 return a+b

print add(2,3)

正確用法:

print((lambda a,b:a+b)(4,5))

li = list(range(10))

print(max(li, key=lambda x: li[li.index(x)]))

比較數大小

salaries=

#普通函式

defget_value(k):

return

salaries[k]

#print(max(salaries,key=get_value))

#print(min(salaries,key=get_value))

#匿名函式

print(max(salaries,key=lambda x:salaries[x])) #

取誰的工資最大

#先 next salaries,得到 鍵名,定義匿名函式 key=lamdba x:salaries[x]

#lamdba x # x 是匿名函式需要的引數,由 salaries[x] 來提供,[x]裡的 x 是前面得到的 鍵名,得到鍵值,通過鍵值來進行排序後,返回鍵名

取誰的工資最大

data = list(range(10))

print(list(map(lambda x: x*x, data)))

搭配map函式

str =['

a','

b','

c','d'

]def

fun(s):

if s != '

a': #

過濾條件,如果不等於,返回值

return

s ret = filter(fun,str) #

格式:filter(函式名,序列),遍歷序列

print(list(ret)) #

['b', 'c', 'd'] 顯示過濾結果,bcd 不等於 a

print(ret) #

即是過濾器物件,也是乙個迭代器物件

例2:name_l=[,,]

res=filter(lambda d:d['

age']>100,name_l)

print(res) #

返回 filter 物件

for i in res: #

遍歷物件

print

(i)*****

搭配filter函式

python之匿名函式

在某些傳入函式的時候,我們不需要顯式的定義函式,我們可以設定乙個匿名函式來白哦是 比如map函式中,引數為乙個函式以及乙個可迭代物件 我們可以這樣 r map lambda x x x,1,2,3,4,5,6,7,8,9 p list r print p 如上,我們在map中沒有使用已定義好的函式,...

Python之匿名函式

開篇小福利 我們都知道,找工作投簡歷時,假如你運氣好,會得到乙個內推碼,它雖然不能使你一定會被招上,但是卻可以避免你的簡歷被機器過濾掉。那麼,問題來了,你知道像這種內推碼一樣的玩意兒是怎麼生成的嗎?下面將使用乙個簡單的程式,隨機生成一千個類似於內推碼的東西。1.匿名函式 匿名函式的關鍵字為lambd...

Python之匿名函式

指一類無須定義識別符號的函式或子程式。python用lambda語法定義匿名函式,只需用表示式而無需申明。省略了用def宣告函式的標準步驟 語法 lambda 形參 返回值 lambda函式能接收任何數量的引數但只能返回乙個表示式的值 lambda 形參 返回值 sum lambda arg1,ar...