# lambda 參數:傳回值/表達式
# print((lambda :100)())
# f = lambda a,b : a + b
# print(f(10, 20))
# f = lambda a,b,c=100: a + b + c
# print(f(10, 20,200))
# print( (lambda *args:args)(20, 30, 40, 50) )
# 不定長參數 -- 可變參數
# *args位置參數 -- 傳回一個清單 2 還有a=100,b=200 ---- args的清單和a和b做合并
# print((lambda *args,a=100,b=200:list(args) + [a, b])(10, 20, 30))
# **kwargs
# print((lambda **kwargs:kwargs)(name='python',age=28))
# 鍵值對互轉
# {value:key for key,value in kwargs.items()}
# print((lambda **kwargs:{value:key for key,value in kwargs.items()})(name='python',age=28))
# lambda可以作為函數的一個參數使用
# f = lambda x,y: x - y
# def func(a,b,f):
# # return a + b -- 丢失f
# return f(a,b)
# print(func(10, 20,f))
# 帶判斷的lambda
# a和b,對比大小 傳回最大值
# 不夠pythonic
# def func(a,b):
# if a> b:
# return a
# else:
# return b
#
# print(func(100, 20))
# print((lambda a,b :a if a>b else b)(1000, 20))
# print((lambda a,b,c:c if c > (a if a>b else b) else (a if a>b else b))(100, 2000, 30))
# 需求************* 做排序 -- 年齡 姓名首字母....
info_list=[
{'name':'zhangsan','age':20},
{'name':'lisi','age':18},
{'name':'laowang','age':30}
]
info_list.sort(key=lambda info:info['age'],reverse=True)
print(info_list)