lambda表達式,一般是在須要一個函數,可是又不想費神去定義一個函數的時候使用,也叫匿名函數。express
lambda所表示的內容應該是很簡單的,若是複雜的話就乾脆從新定義一個函數了。函數
lambda的建立語法:spa
lambda parameters:express(例如:lambda x:x>1)code
冒號後面的是函數體,也是函數的處理邏輯,冒號前面的返回值對象
parameters:可選,若是提供,一般是逗號分隔的變量表達式形式,即位置參數。blog
expression:不能包含分支或循環(但容許條件表達式),也不能包含return(或yield)函數。若是爲元組,則應用圓括號將其包含起來。io
lambda的使用舉例:class
add = lambda x,y:x-y add(5,2) #結果爲3
s = lambda x:"yes" if x==1 else "no" s(0) #結果爲no s(1) #結果爲yes
需求:將列表中的元素按照絕對值大小進行升序排列 list1 = [3,5,-4,-1,0,-2,-6] sorted(list1, key=lambda x: abs(x))
#把後面的迭代對象根據前面的方法篩選 a = filter(lambda x:x>5,[12,3,12,2,1,2,35]) print(next(a)) print(next(a)) print(next(a))
#輸出 12 12 35
c = map(lambda x:x>5,[1,2,3,4,5,6]) print(next(c)) print(next(c)) print(next(c)) print(next(c)) print(next(c)) print(next(c)) #輸出 False False False False False True