Python學習教程:Python3匿名函數lambda詳解及使用示例

Python學習教程:Python3匿名函數lambda詳解及使用示例express

Python學習教程:Python3匿名函數lambda詳解及使用示例

概述bash

匿名函數,顧名思義即沒有名稱的函數,和def定義的函數的最大區別在於匿名函數建立後返回函數自己(即匿名函數不須要return來返回值),表達式自己結果就是返回值,而def建立後則賦值給一個變量名,在Python中,咱們利用關鍵詞lambda建立匿名函數,如下是匿名函數lambda表達式的形式:閉包

lambda arg1,arg2,.....argn:expression函數

如下爲一些lambda的特色:學習

  1. lambda 是一個表達式,而不是一個語句,即咱們能夠在任何能夠使用表達式的場景同樣使用lambda。
  2. lambda 的主體也是一個表達式,即和def定義的函數同樣,lambda也有函數主體,不過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章節和知識點也能夠留言哦!

相關文章
相關標籤/搜索