匿名函式:關鍵字為lambda ,冒號前面是形參 ,冒號後面是返回值
什麼時候使用匿名函式呢?
**塊重複:這時候必須考慮用到匿名函式,降低程式的冗餘度
**塊複雜:這時候可以考慮用到匿名函式,降低程式的可讀性
在python中有兩種函式,一種是def定義,一種是lambda函式.
普通函式:
def
fun(
*args,
**kwargs)
:return args,kwargs
匿名函式:
lambda
*arg,
**kwargs:
(arg,kwargs)
from functools import
reduce
'''def add(x,y):
return x+y
print(reduce(add,range(100)))'''
print
(reduce
(lambda x,y:x+y,
range
(100))
)
結果是:
4950
def
mypow
(x):
return x**
2print
(list
(map
(lambda x:x**2,
range(1
,11))
))
結果是:
[1,
4,9,
16,25,
36,49,
64,81,
100]
def
isood
(x):
if x%2==
0:return x
print
(list
(filter
(lambda x:x%2==
0,range
(100))
))print
(list
(map
(lambda x:x%2==
0,range
(100))
))
結果是:
[0,
2,4,
6,8,
10,12,
14,16,
18,20,
22,24,
26,28,
30,32,
34,36,
38,40,
42,44,
46,48,
50,52,
54,56,
58,60,
62,64,
66,68,
70,72,
74,76,
78,80,
82,84,
86,88,
90,92,
94,96,
98][true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
,true
,false
]
nums=[2
,3,25
,0,3
,0,4
,2]print
(sorted
(nums,key=
lambda x:
1if x==
0else0)
)
結果是:
[2,
3,25,
3,4,
2,0,
0]
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...