Python lambda函式 方法

2021-10-02 05:05:09 字數 1159 閱讀 7942

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