Python之匿名函式

2022-05-08 18:00:12 字數 2116 閱讀 7363

匿名函式指一類無須定義識別符號的函式或子程式。python用lambda語法定義匿名函式,只需用表示式而無需申明。

lambda 函式是一種快速定義單行的最小函式,可以用在任何需要函式的地方

常規版本:

def

fun(x,y)

return x*y

lambda版本:

r = lambda x,y:x*y

print r(2,3)

格式:lambda 引數列表:return [表示式] 變數

由於lambda返回的是函式物件(構建的是乙個函式物件),所以需要定義乙個變數去接收

匿名函式優點:

- 使用python寫一些指令碼時,使用lambda可以省去定義函式的過程,讓**更加精簡。

- 對於一些抽象的,不會被別的地方再重複使用的函式,有時候函式起個名字也是個難題,使用lambda不需要考慮命名的問題

- 使用lambda在某些時候然後**更容易理解

搭配reduce的應用

reduce(fun,list)

reduce依次把list中的數字賦值給fun進行計算

注意fun必須是連個數字間的運算,list必須是整型數字

列印列表元素的平方

for i in map(lambda x:x*x,[0,1,2,3,4]):

print(i) #

0 1 4 9 16

篩選長度大於3的字串

l1 = ['

232','

31231

','21']

func = lambda x:len(x)>3

for i in

filter(func,l1):

print(i)

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

func = lambda x,y:[,]

tu1 =(('

a'),('b'

))tu2 = (('

c'),('d'

))l =func(tu1,tu2)

print(l) #

[, ]

%r會重現所表達的物件,%s會將所有轉成字串

eg1:

print('

i am %s years old

' % 22)

print('

i am %r years old

' % 22)

>>>>>>>>>>>>>>>>>>>>>>>>i am 22years old

i am 22 years old

eg2:

t = '

i am %d years old

' % 22

print('

i said %s

' %t)

print('

i said %r

' %t)

>>>>>>>>>>>>>>>>>>>>>>>>i said i am 22years old

i said

'i am 22 years old

'

eg3:

import

datetime

d =datetime.date.today()

print('

%s' %d)

print('

%r' %d)

>>>>>>>>>>>>>>>>>>>>>>>>

2017-6-26datetime.date(2017, 6, 26)

sorted與.sort()區別

sorted(效率高,用

c語言寫的) 返回的是列表,

排序完形成新列表,並返回

list.sort()

改變原列表

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