python函數 | 匿名函數lambda

匿名函數:lambda 表達式。普通函數有且只有返回值的函數才能用匿名函數進行簡化成一行函數。函數

匿名函數不單獨使用,通常和內置函數結合使用。內置函數中,可加入函數的有min、max、sorted、map、filterspa

 

關於匿名函數格式的說明:code

  函數名 = lambda 參數 :返回值blog

  參數能夠有多個,用逗號隔開內存

  匿名函數無論邏輯多複雜,只能寫一行,且邏輯執行結束後的內容就是返回值class

  返回值和正常的函數同樣能夠是任意數據類型匿名函數

 

 

 1.簡單使用

返回一個數的平方sed

使用函數方式
def func1(x):
    return x ** 2 

使用匿名函數一行搞定
func = lambda x:x ** 2
print(func(5))             # 25 

 

x+ylambda

使用函數方式
def func2(x,y):
    return x + y 

改爲匿名函數
fun = lambda x,y:x+y
print(fun(1,3))             #  4

 

2. lambda 函數與內置函數的結合。sorted,map,filter,max,min,reversed

比較字典值的大小,並輸出key的值map

dic={'k1': 10, 'k2': 100, 'k3': 30}
print(max(dic, key=lambda x: dic[x]))         # k2

 

X2

res = map(lambda x:x**2,[1,5,7,4,8])
for i in res:
    print(i) 

 

打印出大於10的元素

l1 = [1,2,3,11,12,40,20,50,79]
ret = filter(lambda x:x > 10,l1)

for i in ret:
    print(i) 

 

若是l1列表的數據,有上百萬,不能使用列表推導式,很是佔用內存。建議使用lamdba,它只佔用一行

相關文章
相關標籤/搜索