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 函式 返...