python匿名函數
1. python中的匿名函數——lambda函數
在Python中,lambda函數是一個簡單的匿名函數。該函數沒有函數名,它可以有多個參數,但函數只由一個表達式構成。
lambda函數具體的格式如下:
lambda 參數 : 表達式
其中, lambda 是關鍵字, 參數 是函數的參數,可以有0至多個。冒號後面是表達式,也是該函數中的唯一的表達式,lambda函數會返回該表達式的返回值。
我們來看一個具體的例子。
在上述代碼中,number1, number2是lambda函數的參數,number1**2+number**2是函數的表達式,該函數返回number1, number2兩個數的平方和。
上述代碼創建了一個lambda函數後將其賦值給變數sum_square, 在print函數中通過sum_square來調用這個lambda函數。
上述的lambda函數完全可用標準的函數來實現,我們可以將上述代碼改寫成下面的代碼。
在代碼中,定義了函數sum_square,該函數包含兩個參數,並執行一條語句並將該語句的執行結果作為函數返回值。通過上述代碼可以幫助我們更直觀地理解lambda函數。
lambda函數的可讀性較差,那麼為什麼要有這樣奇怪的匿名函數呢?這個要從lambda的使用場合說起。我們來看下面的代碼。
上述代碼定義了一個數值列表,調用python的內置函數filter來生成一個新的迭代器。 filter函數的第一個參數為一個函數,用於決定過濾的方法;第二個參數為一個可迭代的對象如列表、集合等。filter函數返回一個新的迭代器, 用於獲得滿足第一個函數為真的所有元素。在上述代碼中,我們給filter傳遞的第一個參數是一個匿名函數:lambda number:number%3==0, 該函數在一個數整除3時為True,否則為False. filter函數會創建一個新的迭代器,通過調用上述匿名函數來判斷該元素是否滿足條件,得到所有3的倍數的數。
當然,上述代碼也可以使用正常的函數方式來實現,如下所示:
我們可以看到,所有匿名函數的功能都可以通過標准函數來實現。匿名函數常在調用其它函數(如filter, map等)時作為參數使用。使用匿名函數可以使代碼更為精簡。匿名函數主要用於完成簡單的任務,如果匿名函數過於復雜,會導致可讀性較差,調試起來也比較困難,因此,強烈不建議使用lambda寫天書般的代碼。總之,要根據實際情況決定是否使用匿名函數。
2. python的lambda函數是什麼
lambda就是匿名函數,就是沒有名字的函數,來自於於函數式編程的概念。
函數如下:
def f(x):
return x+1
print f(4)
用lambda的話,寫成這樣:
g = lambda x : x+1
print g(4)
簡介
Python由荷蘭數學和計算機科學研究學會的Guido van Rossum 於1990 年代初設計,作為一門叫做ABC語言的替代品。Python提供了高效的高級數據結構,還能簡單有效地面向對象編程。
Python語法和動態類型,以及解釋型語言的本質,使它成為多數平台上寫腳本和快速開發應用的編程語言,隨著版本的不斷更新和語言新功能的添加,逐漸被用於獨立的、大型項目的開發。
3. Python 匿名函數lambda是什麼
在Python語言中除了def語句用來定義函數之外,還可以使用匿名函數lambda,它是Python一種生成函數對象的表達式形式。匿名函數通常是創建了可以被調用的函數,它返回了函數,而並沒有將這個函數命名。lambda有時被叫做匿名函數也就是這個原因,需要一個函數,又不想動腦筋去想名字,這就是匿名函數。
#-*-coding:utf-8-*-
#__author__="www.iplaypy.com"
#普通python函數
deffunc(a,b,c):
returna+b+c
printfunc(1,2,3)
#返回值為6
#lambda匿名函數
f=lambdaa,b,c:a+b+c
printf(1,2,3)
#返回結果為6
#注意觀察上面的Python示例代碼,f=lambdaa,b,c:a+b+c中的關鍵字lambda表示匿名函數,
#冒號:之前的a,b,c表示它們是這個函數的參數。
#匿名函數不需要return來返回值,表達式本身結果就是返回值。
4. Python調用函數時必須使用等於號的函數是什麼
在Python中,調用函數時不一定需要使用等於號,但是有一種函數需要使用等於號,它就是lambda函數(也稱為匿名函數)。
lambda函數是一種簡單的函數,通塵基常用於定義簡單的函數或物野者在一些函數式編程的場景中使用。lambda函數的語法格式為:
lambda arguments: expression
其中,arguments是函數的參數,可以是一個或多個,用逗號分隔;expression是函數的返派螞謹回值,可以是任何錶達式。
使用等於號可以將lambda函數賦值給一個變數,然後通過這個變數來調用函數。例如:
需要注意的是,lambda函數通常用於定義簡單的函數,如果函數比較復雜,建議使用def語句來定義函數。
5. Python 中的lambda 是什麼意思,有什麼作用,如何使用
lambda就是匿名函數,就是沒有名字的函數, 簡便實用 ,來自於於函數式編程的概念(這個不懂自己谷歌); 連java7好像都加這個...
舉個例子
一般的函數是這樣:
def f(x):
return x+1
這樣使用 print f(4)
用lambda的話,寫成這樣:
g = lambda x : x+1
這樣使用 print g(4)