1. 程式人生 > >python 匿名函式

python 匿名函式

當我們在傳入函式時,有些時候,不需要顯式地定義函式,直接傳入匿名函式更方便。

在Python中,對匿名函式提供了有限支援。還是以map()函式為例,計算f(x)=x2時,除了定義一個f(x)的函式外,還可以直接傳入匿名函式:

>>> map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])
[1, 4, 9, 16, 25, 36, 49, 64, 81]

通過對比可以看出,匿名函式lambda x: x * x實際上就是:

def f(x):
    return x * x

關鍵字lambda表示匿名函式,冒號前面的x

表示函式引數。

匿名函式有個限制,就是隻能有一個表示式,不用寫return,返回值就是該表示式的結果。

用匿名函式有個好處,因為函式沒有名字,不必擔心函式名衝突。此外,匿名函式也是一個函式物件,也可以把匿名函式賦值給一個變數,再利用變數來呼叫該函式:

>>> f = lambda x: x * x
>>> f
<function <lambda> at 0x10453d7d0>
>>> f(5)
25

同樣,也可以把匿名函式作為返回值返回,比如:

def build(x, y):
    return lambda: x * x + y * y

小結

Python對匿名函式的支援有限,只有一些簡單的情況下可以使用匿名函式。

相關推薦

python:匿名函式lambda的用法

lambda與map,filter,reduce用法類似,使函式更為直觀,更容易理解。 lambda語句中,冒號前是引數,可以有多個,用逗號隔開,冒號右邊的返回值。 lambda語句構建的其實是一個函式物件。 a = lambda x,y:x**2+y**2 print(a(2,3))

Python匿名函式(lambda)

result = lambda [arg1 [, arg2, .....]]:expression result:用於呼叫lambda表示式 [arg1 [, arg2, …]]:可選引數,用於傳遞

python匿名函式的重新理解

#Python內建的filter()函式用於過濾序列。 #和map()類似,filter()也接收一個函式和一個序列。和map()不同的是,filter()把傳入的函式依次作用於每個元素,然後根據返回值是True還是False決定保留還是丟棄該元素. #注意到f

Python 匿名函式用法和return語句

匿名函式用法1.什麼是匿名函式    函式定義過程中,沒有給定名稱函式,python中用lambda表示式建立匿名函式    lambda只是一個表示式,函式體比def簡單    lambda主題是一個表示式,又有自己的

python--匿名函式(lambda)

匿名函式:為了解決功能簡單的函式而設計的一句話函式 def square(n): return n*n #等價於 square = lambda n: n*n print(square(5)) 格式說明 函式名 = lambda 引數 : 返回值 ''' 引數可以有多個,用

python匿名函式,有引數時,無引數時,返回多個引數時

lambda lambda 形參:返回式子 演練 應用場景 它和其它函式一起使用,一般不會獨立使用 特點 匿名函式不應該有複雜的邏輯,比如不應有if判斷,但可以有判斷的函式如startswith等。(或者使用三元表示式)。 匿函的核心是,冒號的右邊應該是

python匿名函式的使用

1. enumerate()方法可以同時拿到index和value。2. python匿名函式,lambda表示式,可以簡化程式碼。詳見2.2視覺化過程。3. map()函式返回的是map型別,需要轉換成list型別。示例程式碼如下:# coding:utf-8 impor

Python——匿名函式

python 使用 lambda 來建立匿名函式。 所謂匿名,即不再使用 def 語句這樣標準的形式定義一個函式。 lambda  只是一個表示式,函式體比 def 簡單很多。 lambda  的主體是一個表示式,而不是一個程式碼塊。僅僅能在 lambda 表示式中封裝

Python匿名函式:lamdba()函式

Python裡,這個小的函式。可以用來代替一些很小的函式。 在影象,音訊,遊戲方面有比較重要的作用。 當然,這也是我單獨寫出來的原因· 來一個簡單的例子: word:單詞列表 ff:遍歷列表裡面單詞的函式 >>> def ee(word,ff): ... for

python匿名函式以及內建函式的使用

一、匿名函式  1.定義:    匿名函式顧名思義就是指:是指一類無需定義識別符號(函式名)的函式或子程式。 2.語法格式:lambda 引數:表示式   lambda語句中,開頭先寫關鍵字lambda,冒號前是引數,可以有多個,用逗號隔開;冒號右

Python 匿名函式與內建函式

一、匿名函式 python 使用 lambda 來建立匿名函式。意即不再使用 def 語句這樣標準的形式定義一個函式。 lambda只是一個表示式,函式體比def簡單很多。 lambda的主體是一個表示式,而不是一個程式碼塊。僅僅能在lambda表示式中封裝

Python匿名函式(lambda函式

匿名函式lambda Python使用lambda關鍵字創造匿名函式。所謂匿名,意即不再使用def語句這樣標準的形式定義一個函式。這種語句的目的是由於效能的原因,在呼叫時繞過函式的棧分配。其語法是: lambda [arg1[, arg2, ... ar

Python:匿名函式、列表推導式及生成器

匿名函式用lambda關鍵詞能建立小型匿名函式。這種函式得名於省略了用def宣告函式的標準步驟,節省開闢空間。 Lambda函式能接收任何數量的引數但只能返回一個表示式的值,匿名函式不能直接呼叫print,因為lambda需要一個表示式 列表推導式:

python 匿名函式

當我們在傳入函式時,有些時候,不需要顯式地定義函式,直接傳入匿名函式更方便。 在Python中,對匿名函式提供了有限支援。還是以map()函式為例,計算f(x)=x2時,除了定義一個f(x)的函式外,還可以直接傳入匿名函式: >>> map(lambda x: x * x, [1,

python匿名函式:lambda函式

lambda函式也叫做匿名函式,即不需要用def單獨定義,沒有函式名。一般為了在表示式中書寫簡便,比如表示式的一部分需要對某個引數做簡單的運算操作,由於運算操作十分簡單覺得沒必要單獨用def定義一個函式來實現它,就可以用lambda函式直接書寫 lambda函

Python學習筆記: Python匿名函式lambda的使用

例13. 求2-50之間的素數#素數:只能被1或被自己整除的數>>> nums =range(2,50)>>>for iin nums:...nums =list(filter(lambda x:x==i or x % i,nums))>>> nums

python匿名函式(lambda)、函式引數(*args、**kwargs)、柯里化及生成器

1、匿名函式        通過lambda關鍵字進行定義,語句的結果就是返回值,如下所示:In [32]: def sho_function(a): ...: return a**2 ...: In [33]: equiv = lambda a :

python匿名函式的介紹及用途

匿名函式 用lambda能夠建立一個匿名函式,這中函式得名於省略了用def宣告函式的標準步驟。 語法 lambda [arg1 [,arg2,.....argn]]:expression 如何使用 我們正常定義一個函式時是這樣的 def add(a,b): return a+b 使用lambda

python學習day15 day16 內建函式匿名函式

https://www.processon.com/view/link/5bdc4fe3e4b09ed8b0c75e81 例子: print(locals()) #返回本地作用域中的所有名字 print(globals()) #返回全域性作用域中的所有名字 global 變數 nonlocal

Python全棧學習筆記day 16:匿名函式

匿名函式:為了解決那些功能很簡單的需求而設計的一句話函式 這段程式碼 def calc(n): return n**n print(calc(10)) 換成匿名函式 calc = lambda n:n**n print(calc(10)) 下面給出了一個關於匿名函式格式的說