python之lambda表示式

2021-08-02 08:55:12 字數 1495 閱讀 6775

lambda的主體是乙個表示式,而不是乙個**塊。僅僅能在lambda表示式中封裝有限的邏輯進去。

lambda表示式是起到乙個函式速寫的作用。允許在**內嵌入乙個函式的定義。

事例(建立匿名函式):

>>>g=lambda x:2*x+1//冒號前面是變數,冒號後面是表示式

>>>g(5)

11>>>g=lambda x,y:x+y

>>>g(2,3)

5我們首先看看內建函式:

*******

filter()

看注釋:help(filter)

>>> help(filter)

help on built-in function filter in module __builtin__:

filter(...)

filter(function or none, sequence) -> list, tuple, or string

return those items of sequence for which function(item) is true.  if

function is none, return the items that are true.  if sequence is a tuple

or string, return the same type, else return a list.

>>>list(filter(none,[1,0,false,true]))

[1,true]

同時,我們可以用自定義的函式odd:

>>>def odd(x):

return x%2

>>>temp = range(10)

>>>show = filter(odd,temp)

>>>list(show)

[1,3,5,7,9]

把它寫成乙個函式(filter的第一引數是function or none)

:>>>list(filter(lambda x:x%2,range(10)))

>>> list(filter(lambda x:x%2 ,range(5)))

[1, 3]

******對映map()

>>> list(map(lambda x:x%2 ,range(5)))

[0, 1, 0, 1, 0]

這裡定義了乙個action函式,返回了乙個lambda表示式。其中lambda表示式獲取到了上層def作用域的變數名x的值。

a是action函式的返回值,a(22),即是呼叫了action返回的lambda表示式。

>>> def action(x):

return lambda y:x+y

>>> a = action(2)

>>> a(10)

12這裡也可以把def直接寫成lambda形式。如下:

>>> b = lambda x:lambda y:x+y

>>> a = b(3)

>>> a(2)5

Python之lambda表示式

lambda也稱之為匿名函式,與常規函式相比 常規函式def必須通過其函式名被呼叫,因此必須首先被定義。但是作為乙個表示式的lambda,返回的函式物件就不需要名字了。lambda專注於簡單的任務,而常規函式則負責更複雜的多行邏輯。lambda表示式的主體是只有一行的簡單表示式,並不能擴充套件成多行...

Python之lambda表示式

一 lambda表示式的概念和意義 lambda表示式有稱為隱函式,它的定義過程由形參和要返回的表示式組成,它相對於一般函式而言具有以下優勢 1 免去了函式定義的過程,變得更加精簡 2 省卻函式定義過程,不需要處心積慮的想出乙個符合函式功能的名字 二 lambda表示式的用法 格式 lambda關鍵...

Python 之 lambda 表示式

一 lambda的應用場景 二 lambda語法 三 快速入門 案例講解 四 lambda表示式的引數形式 五 lambda表示式的應用 如果乙個函式 有乙個返回值,並且只有一句 可以使用lambda簡化。說實話這定義簡單到離譜 返回頂部 lambda 引數列表 表示式注意 返回頂部需求1 函式 返...