lambda是python的保留字,也是乙個特殊的函式。用法如下:
lambda argument_list: expression
其中argument_list是引數列表(等同於def func(args)中的args),expression就是函式語句,單行表示式,用到的引數需要先定義。
lambda函式經常被用於賦值給變數(簡化書寫),例如:
add = lambda x,y: x+y
雖然用處較少,但是當lambda作為python內建函式的引數時,會讓人有一種原來如此的驚豔感。下面以一道排序題為例:
編寫乙個程式,將輸入字串中的字元按如下規則排序。
規則 1 :英文本母從 a 到 z 排列,不區分大小寫。
如,輸入: type 輸出: epty
規則 2 :同乙個英文本母的大小寫同時存在時,按照輸入順序排列。
如,輸入: baba 輸出: aabb
規則 3 :非英文本母的其它字元保持原來的位置。
如,輸入: by?e 輸出: be?y
思路是一遍遍歷輸入字串,將字母與非字母分離並按位置儲存非字母在列表中。對於字母排序時,如果直接用list.sort()所有大寫字母都會在前,此時需要利用sort()的引數key 來指定排序依照的方法,**如下:
a =
input()
res, ch =
[false]*
len(a),[
]for i, v in
enumerate
(a):
if v.isalpha():
else
: res[i]
= vprint
(ch, res)
# 使用lambda表示式排序,暴力有效。
ch.sort(key=
lambda c: c.lower())
# 將ch中對應的字元填到res中。
for i, v in
enumerate
(res):if
not v:
res[i]
= ch[0]
ch.pop(0)
print(""
.join(res)
)
python lambda函式基礎
本文,我們學習python lambda函式。首先,看一下python lambda函式的語法,如下 f lambda parameter1,parameter2,expression lambda語句中,冒號前是引數,可以有0個或多個,用逗號隔開,冒號右邊是返回值。lambda語句構建的其實是乙個...
python lambda匿名函式
lambda定義乙個匿名函式 lambda只是乙個表示式,函式體比def簡單很多,很多時候定義def,然後寫乙個函式太麻煩,這時候就可以用lambda定義乙個匿名函式。lambda的主體是乙個表示式,而不是乙個 塊。僅僅能在lambda表示式中封裝有限的邏輯進去。參考鏈結 lambda的特性 乙個語...
python lambda 匿名函式
語法 lambda 引數 表示式 接受引數,執行表示式,返回結果 示例 乙個lambda函式,把引數加10,然後返回結果 x lambda a a 10print x 5 lambda函式可以接受任意數量的引數 示例 乙個lambda函式,將引數a與引數b相乘,然後返回結果 x lambda a,b...