python開發函式高階 匿名函式

2022-09-10 08:00:18 字數 1797 閱讀 9537

#簡單的需要用函式去解決的問題 匿名函式的函式體 只有一行

#也叫lambda表示式

# cal2(函式名) = lambda n(引數) : n*n(引數怎麼處理,並且返回值)

#引數可以有多個,用逗號隔開

#匿名函式不管邏輯多複雜,只能寫一行,且邏輯執行結束後的內容就是返回值

#返回值和正常的函式一樣可以是任意資料型別

1.函式和匿名函式

1

#!/usr/bin/env python2#

_*_coding:utf-8_*_34

defcal(n):

5return n*n

6print(cal(10))

7 cal2 = lambda n:n*n

8print(cal2(10))910

defadd(x,y):

11return x+y

12print(add(1,2))

13 add2 = lambda x,y : x+y

14print(add2(1,2))

1516

#查詢大於10的數字

17 l = [10,11,8,12]

18def

func(x):

19return x>10

20print

(list(filter(func,l)))

21print(list(filter(lambda x:x>10,l)))

2223

#數字冪次方運算

24def

pow2(x):

25return x*x

26map(pow2,l)

27print(list(map(lambda x:x*x , l)))

2.匿名函式真的可以匿名,在和其他函式合作的時候

1

#!/usr/bin/env python2#

_*_coding:utf-8_*_34

#查詢字典value值最大的

5 dic=

6print(max(dic)) #

k37 func = lambda k:dic[k] #

values

8print(max(dic,key =func))

9print(max(dic,key = lambda

k:dic[k]))10#

執行邏輯 dic >> lambda >> max >> key #模糊

111213#

現有兩個元組(('a'),('b')),(('c'),('d')),請使用python中匿名函式生成列表[,]14#

第一種15 t1 = (('

a'),('b'

))16 t2 = (('

c'),('d'

))17

print(list(zip(t1,t2))) #

[('a', 'c'), ('b', 'd')]

18print(list(map(lambda t: ,zip(t1,t2)))) #

zip拉鍊成列表 map有解壓法

1920

#第二種

21print([ for i,j in zip(t1,t2)]) #

item = ('a', 'c') i,j = 'a', 'c' 元祖的解包

22 func = lambda t1,t2 : [ for i,j in zip(t1,t2)] #

右邊是返回值

23 ret =func(t1,t2)

24print(ret)

Python高階函式 匿名函式

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

Python 函式高階 匿名函式

不需要使用def去定義,也不用給函式取名字,用lambda表示式來定義,這種函式叫做匿名函式 lambda 引數 表示式 作為返回值 將以下函式改為匿名函式 普通函式 def func var1 return var1 2 匿名函式寫法 lambda var1 var1 2 匿名函式定義後可以直接呼...

python開發 函式的引數傳遞

在這個用例中,我們要討論的是關於函式的傳參問題 我所使用的python版本為3.3.2 對於函式 1 deffun arg 2print arg 34 defmain 5 fun hello,hongten 67if name main 8 main 當我們傳遞乙個引數給fun 函式,即可列印出傳遞...