#簡單的需要用函式去解決的問題 匿名函式的函式體 只有一行
#也叫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 函式,即可列印出傳遞...