zoukankan      html  css  js  c++  java
  • python递归函数、内置函数

    递归函数的特点:

      1,调用自身函数;

      2,有一个结束条件;

      3,但凡是递归可以写的,循环都可以实现;

      4,递归的效率在很多时候会很低;

    def f(n):
      if n == 1:
        return 1
      return n*f(n-1)
    

      斐波那契数列:

    #循环实现
    def fibo(n):
     
        before=0
        after=1
        for i in range(n-1):
            ret=before+after
            before=after
            after=ret
     
        return ret
    

      

    #递归实现
    def fibo_new(n):#n可以为零,数列有[0]
     
        if n <= 1:
            return n
        return(fibo_new(n-1) + fibo_new(n-2))
    

     内置函数: 

     1, filter(function, sequence) :

      对sequence中的item依次执行function(item),将执行结果为True的item做成一个filter object的迭代器返回。可以看作是过滤函数。

     

    str = ['a', 'b','c', 'd']
     def fun1(s):
        if s != 'a':
            return s
    ret = filter(fun1, str)
    print(list(ret))# ret是一个迭代器对象
    

    2,map(function, sequence) :

      对sequence中的item依次执行function(item),将执行结果组成一个map object迭代器返回.

    str = [1, 2,'a', 'b']
    def fun2(s):
        return s + "alvin"
    ret = map(fun2, str)
    print(ret)      #  map object的迭代器
    print(list(ret))#  ['aalvin', 'balvin', 'calvin', 'dalvin']
    

    3,reduce(function, sequence, starting_value):

      对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用.

    from functools import reduce
    def add1(x,y):
        return x + y
    
    print (reduce(add1, range(1, 101)))
    

     4,lambda 

      匿名函数的命名规则,用lamdba 关键字标识,冒号(:)左侧表示函数接收的参数(a,b) ,冒号(:)右侧表示函数的返回值(a+b)。

      因为lamdba在创建时不需要命名,所以,叫匿名函数

    #通过Reduce函数加lambda表达式式实现阶乘:
    from functools import reduce
    print (reduce(lambda x,y: x*y, range(1,6)))
    

      

  • 相关阅读:
    caseStudy-20181216-Kafka(xxx)集群故障&解决办法
    caseStudy-20190312 xxx kafka集群因文件描述符超阀值引起集群不可用
    Kafka客户端二次封装扩展总体设计
    2018年工作规划-Kafka方向OKR
    针对Kafka的centos系统参数优化
    脚本kafka-configs.sh用法解析
    Kafka动态配置实现原理解析
    动态配置实现原理解析参考资料
    Topics类型配置
    Brokers类型配置
  • 原文地址:https://www.cnblogs.com/zzzhao/p/11402853.html
Copyright © 2011-2022 走看看