# 1.有名函数
# func = 函数的内存地址
# def func(x, y):
# return x + y
# 2.定义匿名函数
# lambda x, y: x + y
# 3.调用匿名函数
# 方式一:
# res = (lambda x, y: x + y)(1, 2)
# print(res)
# 方式二:
# func = lambda x, y: x + y
# res = func(1, 2)
# print(res)
# 匿名函数用于临时调用一次的函数:更多的是将匿名函数与其他函数配合使用
salaries = {
'sepia': 3000,
'tom': 7000,
'lily': 10000,
'jack': 2000
}
# 取最高工资的人
# res = max(salaries, key=lambda x: salaries[x])
# print(res)
# 取最低工资的人
# res = min(salaries, key=lambda x: salaries[x])
# print(res)
# 按工资排序(从小到大)
# res = sorted(salaries, key=lambda x: salaries[x])
# print(res)
# 按工资排序(从大到小)
# res = sorted(salaries, key=lambda x: salaries[x], reverse=True)
# print(res)
# ================================================
# map(映射)的应用(了解)
# l1 = ['alex', 'axx', 'bxx', 'cxx', 'dxx']
# res = map(lambda name: name + '_dsb', l1)
# print(res) # 得到生成器
# ================================================
# filter的应用(了解)
# l2 = ['alex', 'axx', 'bxx', 'cxx', 'dxx']
# res = filter(lambda name: name.endswith('xx'), l2)
# print(res) # 得到生成器
# ================================================
# reduce(了解)
# from functools import reduce
# res = reduce(lambda x, y: x + y, [1, 2, 3], 10)
# print(res)
#
# res = reduce(lambda x, y: x + y, ['a', 'b', 'c'], 'sss')
# print(res)