今天要來介紹 Lambda 函式,這個函式相當簡單,只有一行就可以表示完了,Lambda 函式做的事情其實用普通的函式就可以做出一樣的功能了,但是 Python 這個程式語言追求的是簡潔簡短。
Lambda 函式 就是為了縮短程式碼所出現的招式。
以下為 Lambda 函式的語法
lambda 參數1, 參數2, ...: 運算式A if 判斷式 else 運算式B
Lambda 函式沒有函式名稱,程式中最前面的 lambda
是指令,不是函式名稱。
Lambda 函式中的「參數1, 參數2」就是一般函式括號裡的參數,後面 :
接的就是函式裡面的被定義函式(要執行的程式碼)。
Lambda 函式的程式碼只能一行,並且會把運算後的結果自動傳回,不需要 return
。
先來看一下最簡單的用法:x(5)
代表把 a 代入 5
x = lambda a : a * 10
print(x(5))
來寫一個找最小值的函式:輸入為 a, b
兩個參數,若判斷式 a < b
成立,就輸出 a
,若不成立就輸出 else
的 b
呼叫時可以用位置對應,也可以用名稱去呼叫,也比較不容易搞混。
x = lambda a, b : a if a < b else b
print(x(2, 6))
print(x(7, 5))
print(x(b = 1, a = 8)) # 用名稱呼叫
函式會把要 return
的東西都傳給呼叫的變數,我們把 Lambda 韓式放在 return
之後再呼叫一次就可以連用了。
def myfunc(n):
return lambda a : a * n
test11 = myfunc(10)
print(test11(5))
待續...