匿名函数与递归函数

匿名函数 为了解决那些功能很简单的问题  lambda
#匿名函数
# res=lambda x,y:x+y
# print(res(3,4))
# print(list(map(lambda x:x**2,[1,2,3,4])))
# print(list(filter(lambda x:x>2,[1,2,3,4])))

# dic={'k1':10,'k2':100,'k3':30}
#找到最大值所对应的键
# print(max(dic,key=lambda k:dic[k]))
#reduce:处理一个序列,然后把序列进行合并操作
# from functools import reduce
# num=[1,2,3]
# s1=reduce(lambda x,y:x+y,num)
# s2=reduce(lambda x,y:x+y,num,2)
# print(s1,s2)
递归函数
  递归 在一个函数里再调用这个函数本身
  递归的最大深度  
  优点 代码简单
  缺点 占内存
#递归的最大深度 997
# def foo(n):
#     print(n)
#     n+=1
#     foo(n)
# foo(0)

#设置递归最大深度
# import sys
# sys.setrecursionlimit(1000)

#简单实例
# def age(n):
#     if n==1:
#         return 40
#     else:
#         return age(n-1)+2
# print(age(4))

# 阶乘
# def fac(n):
#     if n == 1 :
#         return 1
#     return n * fac(n-1)
#
# print(fac(100))

#二分查找算法
# l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
# def find(l,aim,start = 0,end = None):
#     end = len(l) if end is None else end
#     mid_index = (end - start)//2 + start
#     if start <= end:
#         if l[mid_index] < aim:
#             return find(l,aim,start =mid_index+1,end=end)
#         elif l[mid_index] > aim:
#             return find(l, aim, start=start, end=mid_index-1)
#         else:
#             return mid_index
#     else:
#         return '找不到这个值'
#
#
# ret= find(l,43)
# print(ret)

#斐波那契数列
# def fib(n):
#     if n == 1 or n==2:
#         return 1
#     return fib(n-1) + fib(n-2)
# print(fib(5))
#
# def fib(n,a=1,b=1):
#     if n==1 :
#         return a
#     return fib(n-1,b,a+b)
#
# print(fib(5))

猜你喜欢

转载自www.cnblogs.com/liuhongshuai/p/9781610.html