lambda函数常见用法

时间:2022-10-27 19:14:02
# 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)