匿名函式(Python)

2021-10-13 07:29:20 字數 1624 閱讀 6172

python中使用lambda表示式構建匿名函式。

語法 (lambda 形參:表示式)(實參)表示式不能有等號 且表示式只能寫一句。

# 一.

defadd

(x, y)

:return x + y

# 二.

add =

lambda x, y:x + y

# 三.

[lambda x, y:x + y][0

](1,

2)以上三種等價

注意形參可以不寫但表示式必須的寫!!

引數列表不需要小括號,無參就不要寫引數

冒號用來分割引數列表和表示式部分

不需要使用return。表示式的值,就是匿名函式的返回值, 表示式中不能出現等號

lambda表示式(匿名函式)只能寫在一行上,也稱為單行函式。

匿名函式往往用在為高階函式傳參時,使用lambda表示式,往往能簡化**

# 以sorted函式變一下

list_ =[1

,4,7

,6]lis =

sorted

(list_, key =

lambda x:

ord(x)

ifisinstance

(x,str

)else x)

print

(lis)

# 等價於

deflis_

(x):

ifisinstance

(x,str):

return

ord(x)

return x

lis__ =

sorted

(list_, key = lis_)

print

(lis__)

結果:

[1,

4,6,

7][1

,4,6

,7]

[x for x in

(lambda

*args:

map(

lambda x: x +

1, args))(

*range(5

))]#[1, 2, 3, 4, 5]

[i for i in

(lambda

*args :

map(

lambda x: x+

1, args))(

*range(10

))]#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

(

lambda

*args :

[i for i in args])(

*range(10

))#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

函式和函式間的呼叫

deffn

(x):

return x +

1foo =

lambda args : fn(args)

foo(2)

# 3

python匿名函式

例如 a 100 b a 這樣100只會有乙份,a和b只是指向了同乙個位置,改變a的值b也會跟著改變 當我們用id 變數 檢視兩變數的位址是相同的 可變型別 列表,字典 不可變型別 除了可變型別剩下的都是不可變型別 不可變型別舉例 a world 可以輸出a 0 整個字串也可以修改,但是要修改a 0...

python 匿名函式

在python中,對匿名函式提供了有限支援。還是以map 函式為例,計算f x x2時,除了定義乙個f x 的函式外,還可以直接傳入匿名函式 map lambda x x x,1,2,3,4,5,6,7,8,9 1,4,9,16,25,36,49,64,81 通過對比可以看出,匿名函式lambda ...

python 匿名函式

1.匿名函式定義規則 lambda 形參 返回值 def fun args,kwargs return args,kwargs print lambda args,kwargs args,kwargs def add x,y return x y from functools import redu...