Python學習教程:Python3匿名函數lambda詳解及使用示例express
概述bash
匿名函數,顧名思義即沒有名稱的函數,和def定義的函數的最大區別在於匿名函數建立後返回函數自己(即匿名函數不須要return來返回值),表達式自己結果就是返回值,而def建立後則賦值給一個變量名,在Python中,咱們利用關鍵詞lambda建立匿名函數,如下是匿名函數lambda表達式的形式:閉包
lambda arg1,arg2,.....argn:expression函數
如下爲一些lambda的特色:學習
lambda使用ui
無參匿名函數spa
# 能夠將lambda直接傳遞給一個變量,像調用通常函數同樣使用
B = lambda :True
print(B())
# 等價於
def BF():
return True
print(BF())
複製代碼
示例結果:code
True
True
複製代碼
有參匿名函數cdn
支持多個參數blog
參數無默認值
two_sum = lambda x, y: x + y
# 等同於:
def two_sum(x, y): return x + y
print(two_sum(1,2))
複製代碼
示例結果:
3
複製代碼
參數帶默認值
sum_with_100 = lambda x, y=100: x + y
# 等同於:
def sum_with_100(x, y=100): return x + y
print(sum_with_100(200))
複製代碼
示例結果:
300
複製代碼
從後面傳參
以前的示例咱們將lambda匿名函數賦值一個變量,經過相似def定義的函數的方式傳參,咱們能夠在lambda後面直接傳遞參數:
two_sum = (lambda x, y: x + y)(3, 4)
print(two_sum)
複製代碼
示例結果:
7
複製代碼
嵌套使用
將lambda嵌套到普通函數中,lambda函數自己作爲return的值,構建簡單的閉包
sum_with_100 = sum(100)
result = sum_with_100(200)
print(result)
複製代碼
示例結果:
300
複製代碼
一些使用實例
1. 結合三元表達式求兩值中最小值
lower = lambda x,y: x if x<y else y
print(lower(7,100))
複製代碼
實例結果:
7
複製代碼
2. 對字典某一鍵值進行排序
d = [{"order":3},{"order":1},{"order":2}]
# 根據order鍵值排序
d.sort(key=lambda x:x['order'])
print(d)
複製代碼
實例結果
[{'order': 1}, {'order': 2}, {'order': 3}]
複製代碼
關於匿名函數lambda今天跟你們分享這麼多,應該仍是比較好理解的!更多的Python學習教程知識點會繼續跟你們分享,或者說你們有什麼想學的Python章節和知識點也能夠留言哦!