一、語法 作用:簡化函數代碼 格式:lambda 參數列表 :表達式 P.s: lambda表達式參數可有可無,參數寫法同函數 lambda函數能接收任何數量的參數但只能返回一個表達式的值 def func0(): return 100 func = lambda: 100 # lambda本質是一 ...
一、語法
作用:簡化函數代碼
格式:lambda 參數列表 :表達式
P.s:
- lambda表達式參數可有可無,參數寫法同函數
- lambda函數能接收任何數量的參數但只能返回一個表達式的值
def func0(): return 100 func = lambda: 100 # lambda本質是一個匿名函數 print(func0) # <function func0 at 0x000001F7FE355160> print(func) # <function <lambda> at 0x000001E20BAD5160> print(func0()) # 100 print(func()) # 100
二、參數形式
# 無參數 f1=lambda:100 print(f1()) # 100 # 一個參數 f2=lambda a:a print(f2('Hello!')) # Hello! # 預設參數 f3=lambda a,b,c=300:a+b+c print(f3(100,200)) # 600
# 可變參數*args,返回元組 f4=lambda *args:args print(f4(100,200,300)) # (100, 200, 300)
# 可變參數**kwargs,返回字典 f5=lambda **kwargs:kwargs print(f5(name='Tom',age=10)) # {'name': 'Tom', 'age': 10}
三、應用
# 1、判斷 func1 = lambda a,b: a if a>b else b print(func1(2,3)) # 3 # 2、按照字典key排序 students = [ {'name':'Alice','age':18}, {'name':'Bill','age':20}, {'name':'Cindy','age':16} ] # 2.1、按照age升序排序 students.sort(key=lambda x:x['age']) print(students) # [{'name': 'Cindy', 'age': 16}, {'name': 'Alice', 'age': 18}, {'name': 'Bill', 'age': 20}] # 2.2、按照name降序排序 students.sort(key=lambda x:x['name'],reverse=True) print(students) # [{'name': 'Cindy', 'age': 16}, {'name': 'Bill', 'age': 20}, {'name': 'Alice', 'age': 18}]