Python中匿名函式與Lambda表示式

2021-08-14 08:57:06 字數 2793 閱讀 2651

python高階應用與資料分析學習筆記 04

1、匿名函式
# 函式的基本使用

deffunction1

(x,y):

return x+y

print(function1(10,20))

# 對乙個列表進行求平方,我們之前一般會這麼做

result =

for i in range(1,11):

print(result)

# 使用了匿名函式我們可以這麼做

print([i**2

for i in range(1,11)]) #與上面的效果是一樣的

# 新增判斷條件

print([i**2

for i in range(1,11) if i % 2 == 0])

# 將二維列表轉換成一維列表

2、lambda表示式

2.1、lambda表示式的形式

# lambda 表示式

lambda1 = lambda x: x**2

lambda2 = lambda x, y: x+y

lambda3 = lambda x: x % 2 == 0

2.2、map函式與lambda的結合使用
# lambda 表示式

lambda1 = lambda x: x**2

lambda2 = lambda x, y: x+y

lambda3 = lambda x: x %2 ==0

# pythohn中與lambda經常結合使用的函式有map、reduce、filter

# map的使用

2.3、reduce函式與lambda的結合使用

# reduce的使用

from functools import reduce

# lambda 表示式

lambda1 = lambda x: x**2

lambda2 = lambda x, y: x+y

lambda3 = lambda x: x % 2 == 0

# print(reduce(lambda1,range(10))) #要求表示式是乙個2元函式,如果是一元函式的話,就會報錯:() takes 1 positional argument but 2 were given

print(reduce(lambda2,range(10))) #45

2.4、filter函式與lambda的結合使用
# lambda 表示式

lambda1 = lambda x: x**2

lambda2 = lambda x, y: x+y

lambda3 = lambda x: x % 2 == 0

# filter的使用

print(list(filter(lambda1,range(10)))) #[1, 2, 3, 4, 5, 6, 7, 8, 9]

print(list(filter(lambda2,range(10),range(6)))) #typeerror: filter expected 2 arguments, got 3

print(list(filter(lambda2,range(10)))) #typeerror: () missing 1 required positional argument: 'y'

print(list(filter(lambda3,range(10))))

2.5、綜合練習

練習:求6!+5!+4!+3!+2!+1!的和

# 練習:求6!+5!+4!+3!+2!+1!的和

# 要求:使用lambda、map、reduce、fitter

from functools import reduce

# 第一步:求6!= 6*5*4*3*2*1的和

lambda_1 = lambda x, y: x*y

print(reduce(lambda_1,range(1,7)))

# 第二步:求每個階乘的組成的列表

lambda_2 = lambda a: reduce(lambda_1,range(1,a+1))

print(list(map(lambda_2,range(1,7))))

# 第三步:求列表的和

Python3學習筆記09 匿名函式lamdba

關鍵字lambda表示匿名函式,冒號前面,面的x表示函式引數。匿名函式有個限制,就是只能由乙個表示式,不用寫return,返回值就是該表示式的結果。匿名函式有個好處,因為函式沒有名字,不必擔心函式名稱衝突。此外,匿名函式也是乙個函式物件,也可以把匿名函式賦值給乙個變數,再利用變數來呼叫該函式 f l...

python中匿名函式

高階函式可以接收函式做引數,有些時候,我們不需要顯式地定義函式,直接傳入匿名函式更方便。在python中,對匿名函式提供了有限支援。還是以map 函式為例,計算 f x x2 時,除了定義乙個f x 的函式外,還可以直接傳入匿名函式 map lambda x x x,1,2,3,4,5,6,7,8,...

python中匿名函式

高階函式可以接收函式做引數,有些時候,我們不需要顯式地定義函式,直接傳入匿名函式更方便。在python中,對匿名函式提供了有限支援。還是以map 函式為例,計算 f x x2 時,除了定義乙個f x 的函式外,還可以直接傳入匿名函式 map lambda x x x,1,2,3,4,5,6,7,8,...