python之lambdas函数(lambda表达式)
python之lambdas函數(lambda表達式)
lambda函數,也稱為lambda表達式。
lambda函數(或lambda表達式)的語法:
lambda arguments: expression
創建一個返回表達式值的匿名函數。其中:
lambda 是關鍵字( keyword),用于創建lambda函數(或lambda表達式);
arguments是可選的,代表參數,多個參數之間用逗號分隔;
冒號后面的expression是一個表達式定義函數體。
lambda 接受一組參數以及組合這些參數的表達式,它會創建一個返回表達式值的匿名函數,例如:
adder = lambda x, y: x+y
可以使用 def 語句來定義改寫函數如下:
def adder(x, y):
return x + y
與def 語句來定義的函數相比,lambda 能夠定義的函數非常受限。函數的結果必須能夠作為單獨的表達式來計算,不能if... elif... else 、 try... except 等語句。
【關于lambdas函數(或表達式)
https://docs.python.org/zh-cn/3/reference/expressions.html#lambda :
lambda 表達式(有時稱為 lambda 構型/形式)被用于創建匿名(anonymous )函數。 表達式 lambda parameters: expression 會產生一個函數對象。
https://docs.python.org/zh-cn/3.11/tutorial/controlflow.html#lambda-expressions :
lambda 關鍵字用于創建小巧的匿名函數。
https://docs.python.org/zh-cn/3.11/howto/functional.html#small-functions-and-the-lambda-expression:
lambda 能夠定義的函數非常受限。函數的結果必須能夠作為單獨的表達式來計算,這意味著你不能使用多路 if... elif... else 比較,或者 try... except 語句。】
使用lambda語句來定義這個函數
lambda x : 2 * x + 1
執行完lambda語句后實際上返回一個函數對象,顯示為<function <lambda> at 0x……>,
如果要對它進行調用,只需要給它綁定一個臨時的名字即可,這里將lambda x : 2 * x + 1綁定到x,參見下圖:
下面給一個求和的lambdas函數,源碼如下:
# 求和的lambdas函數 sum = lambda a,b: a + b # 直接賦值給一個變量,然后再像一般函數調用# 調用lambdas函數 print(sum(10, 20)) # 輸出為 30 print(sum(20, 20)) # 輸出為 40?運行效果:
通過lambdas函數設計高階函數的例子,源碼如下:
lam = lambda x, y: x-y # 定義lambdas函數,求兩數差def test(a, b, func):return func(a, b)num = test(34, 26, lam) # 接收一個函數作為參數 print(num) # 輸出:8?運行效果:
總結
以上是生活随笔為你收集整理的python之lambdas函数(lambda表达式)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JdbcTemplate数据库连接耗尽问
- 下一篇: VC小知识!