匿名函數
用lambda能夠創建一個匿名函數,這中函數得名于省略了用def聲明函數的標準步驟。
語法
lambda [arg1 [,arg2,.....argn]]:expression
如何使用
Python資源共享群:484031800
- 我們正常定義一個函數時是這樣的
def add(a,b): return a+b
- 使用lambda定義匿名函數是這樣的
add = lambda a,b:a+b # 和上面函數功能一樣
按正常的調用方式即可。lambda表達式能夠接收任何數量的參數但只能返回一個表達式的值。
用途
1.就像上文所述能后夠簡化代碼
2.匿名函數作為參數傳遞
- 作為自定義函數的參數傳遞
def test(a, b, func): result = func(a, b) print(result) func_new = input("請輸入一個匿名函數:") # eval()將字符串str當成有效的表達式來求值并返回計算結果。 func_new = eval(func_new) test(11, 22, func_new) """ 輸出結果: 請輸入一個匿名函數:lambda a,b:a+b 33 """
- 作為內置函數的參數傳遞
- 例如:將列表中的字典按照指定的關鍵字進行排序
stus = [ {"name":"zhangsan", "age":18}, {"name":"lisi", "age":19}, {"name":"wangwu", "age":17} ] stus.sort(key = lambda x:x['age']) for stu in stus: print(stu) """ 輸出結果: {'name': 'wangwu', 'age': 17} {'name': 'zhangsan', 'age': 18} {'name': 'lisi', 'age': 19} """