也叫 lambda 表達式ide
a.匿名函數的核心:一些簡單的須要用函數去解決的問題,匿名函數的函數體只有一行函數
b.參數能夠有多個,用逗號隔開spa
c.返回值和正常的函數同樣能夠是任意的數據類型3d
d.匿名函數不支持複雜的邏輯判斷code
e.通常跟其餘函數搭配使用對象
普通函數與匿名函數的對比:blog
#普通函數 def add(a,b): return a + b print(add(2,3)) #匿名函數 add = lambda a,b : a + b # 至關與 return a+b print add(2,3) 正確用法: print((lambda a,b:a+b)(4,5))
li = list(range(10)) print(max(li, key=lambda x: li[li.index(x)]))
salaries={ 'egon':3000, 'alex':100000000, 'wupeiqi':10000, 'yuanhao':250 } # 普通函數 def get_value(k): return salaries[k] # print(max(salaries,key=get_value)) # print(min(salaries,key=get_value)) # 匿名函數 print(max(salaries,key=lambda x:salaries[x])) # 取誰的工資最大 # 先 next salaries,獲得 鍵名,定義匿名函數 key=lamdba x:salaries[x] # lamdba x # x 是匿名函數須要的參數,由 salaries[x] 來提供,[x]裏的 x 是前面獲得的 鍵名,獲得鍵值,經過鍵值來進行排序後,返回鍵名
data = list(range(10)) print(list(map(lambda x: x*x, data)))
str =['a','b','c','d'] def fun(s): if s != 'a': # 過濾條件,若是不等於,返回值 return s ret = filter(fun,str) # 格式:filter(函數名,序列),遍歷序列 print(list(ret)) #['b', 'c', 'd'] 顯示過濾結果,bcd 不等於 a print(ret) # <filter object at 0x0000000001044240> 便是過濾器對象,也是一個迭代器對象 例2: name_l=[{'name':'egon','age':18}, {'name':'alex','age':1000}, {'name':'yuanhao','age':2000}] res=filter(lambda d:d['age']>100,name_l) print(res) # 返回 filter 對象 for i in res: # 遍歷對象 print(i) ===== {'age': 1000, 'name': 'alex'} {'age': 2000, 'name': 'yuanhao'}
.排序