天天看點

lambda函數常見用法                                                                   -------  知識無價,汗水有情,如需搬運請注明出處,謝謝!

# 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)
      

  

                                                                   -------  知識無價,汗水有情,如需搬運請注明出處,謝謝!