概述
匿名函式,顧名思義即沒有名稱的函式,和def定義的函式的最大區別在於匿名函式建立後返回函式本身(即匿名函式不需要return來返回值),表示式本身結果就是返回值,而def建立後則賦值給乙個變數名,在python中,我們利用關鍵詞lambda建立匿名函式,以下是匿名函式lambda表示式的形式:
lambda arg1,arg2,.....argn:expression
以下為一些lambda的特點:
lambda使用
無參匿名函式
# 可以將lambda直接傳遞給乙個變數,像呼叫一般函式一樣使用
b = lambda :true
print(b())
# 等價於
def bf():
return true
print(bf())
示例結果:
true
true
有參匿名函式
支援多個引數
引數無預設值
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函式本身做為yszc***iireturn的值,構建簡單的閉包
def sum(x):
return lambda y: x + y
sum_with_100 = sum(100)
result = sum_with_100(200)
print(result)
示例結果:
300一些使用例項
1. 結合三元表示式求兩值中最小值
lower yszc***ii= lambda x,y: x if x
例項結果:
72. 對字典某一鍵值進行排序
d = [,,]
# 根據order鍵值排序
d.sort(key=lambda x:x['order'])
print(d)
例項結果
[, , ]
總結本文標題: python3匿名函式lambda介紹與使用示例
本文位址:
python3匿名函式
當我們在傳入函式時,有些時候,不需要顯式地定義函式,直接傳入匿名函式更方便。在python中,對匿名函式提供了有限支援。還是以map 函式為例,計算f x x2時,除了定義乙個f x 的函式外,還可以直接傳入匿名函式 list map lambda x x x,1,2,3,4,5,6,7,8,9 1...
Python3匿名函式用法示例
coding utf 8 python3 匿名函式 1.不用給函式取名 2.使用方便,隨時定義,隨時使用 def calc x x return x x rs calc x 10 print rs lambda 引數列表 函式執行的簡單邏輯 lambda 返回乙個函式物件,可以使用變數接收 a la...
Python3之匿名函式(lambda函式)
data.sort key lambda x x 0 匿名函式 使用方式 語法 lambda para1,para2,expression 舉例1 若要完成乙個實現兩數相加的函式,用def關鍵字很簡單,幾行就可以搞定,所以也許似乎沒必要單獨寫乙個函式來呼叫。我們可以定義匿名函式並賦值給a,a具有匿名...