匿名函式指一類無須定義識別符號的函式或子程式。python用lambda語法定義匿名函式,只需用表示式而無需申明。
lambda 函式是一種快速定義單行的最小函式,可以用在任何需要函式的地方
常規版本:
deffun(x,y)
return x*y
lambda版本:
r = lambda x,y:x*yprint 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:
importdatetime
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...