Python3匿名函式lambda介紹與使用示例

2022-10-04 17:30:10 字數 1473 閱讀 1992

概述

匿名函式,顧名思義即沒有名稱的函式,和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具有匿名...