匿名函数+函数递归+二分法+面向过程编程

# 匿名函数
# 什么是匿名函数?

# 这叫一个有名函数
# def func():
# print('123')
# 可以通过名字找到值(函数的内存地址),加括号可以重复调用
# func()
# func()
# func()

# 匿名函数:就是没有名字的函数,只能使用一次就被回收
# 定义: lambda 参数:函数体(相当于return结果)
# 调用: (lambda x,y:x+y)(10,20)
# 会有一个返回值 res= (lambda x,y:x+y)(10,20)
# print(res)
# 但是匿名函数不是这么用的,都是跟其他函数结合到一起用,而且只用一次就结束了,不重复用
# 与max,min,sorted,map,reduce,filter等混合使用

# 与max混用
# 要求拿到薪资最多的那个人的姓名
# salaries={
# 'egon':3000,
# 'alex':100000000,
# 'wupeiqi':10000,
# 'yuanhao':2000
# }

# res=max(salaries,key=lambda k:salaries[k])
# print(res)

# max(,key=)工作原理
# 1.首先将可迭代对象变成迭代器对象
# 2.next(迭代器对象),会有一个返回值,将这个返回值当做参数传给key指定的函数
# 然后将该函数的返回值当做判断的依据
# 3.比较大小取出最大值的人名

# def func(k):
# return salaries[k]
# print(max(salaries,key=func))

# 与sorted混用,排序
# li=[2,1,45,7,-3]
# print(sorted(li))

# salaries={
# 'egon':3000,
# 'alex':100000000,
# 'wupeiqi':10000,
# 'yuanhao':2000
# }
# print(sorted(salaries,key=lambda k:salaries[k],reverse=True))

# 与map混用
# 1.map()(函数,可迭代对象)会将可迭代对象变成迭代器对象
# 2.next()迭代器对象会得到一个返回值,
# 然后将该返回值当做参数传给第一个参数指定的函数
# 然后将函数的返回值当做map的结果之一

# names=['alex','egon','hulaoshi','kevin']
# # 要求所有人名加'sb'结尾
# res=map(lambda name:name+'sb' ,names)
# print(list(res))

# filter()过滤
# names=['alexSB','egon','hulaoshiSB','kevinSB']
# # 要求把带SB的过滤出来
# res=filter(lambda name:name.endswith('SB'),names)
# print(list(res))

猜你喜欢

转载自www.cnblogs.com/zhangrenguo/p/9768382.html