zoukankan      html  css  js  c++  java
  • 第四篇、函数和递归

    高阶函数: 

    规约函数

    all(iterable):只要iterable的每个元素都是真,那么返回True,all([])为True

    any(iterable)  :只要iterable中有元素为真,那么就返回True,any([]) False

    python3中的reduce需要导入包from functools  import reduce

    from functools import reduce
    from operator import add
    a=reduce(add,range(100))
    print(a)
    

    map filter reduce替代品列表推导,python3为生成器表达式

    __call__:只要对象加括号就会执行,只要实现这个发那个发,任何对象都可以表现的像函数 

    lambda匿名函数

    里面可以用三元表达式

    函数名=lambda 参数:return(或者三元表达式)

    name=["a","c"]
    res =map(lambda x: x if x=="a" else x+"1",name)
    print(list(res))

    ['a', 'c1']

    递归:

    python2.7中:

    def fib_seq(n):
         if n < 2:
            return n
         a,b = 1,0
         for i in range(n-1):
            a,b = a+b,a
         return a
    print(fib_seq(10)

    在python3中有更快的递归方法:

    from numba import jit
    @jit
    def fib_seq_numba(n):
        if n<2:
            return n
        (a,b)=(1,0)
        for i in range(n-1):
            (a,b)=(a+b,a)
            return a
    
    print(fib_seq_numba(10))
    

      

    性能比cpython快16000倍

  • 相关阅读:
    Mathematics:GCD & LCM Inverse(POJ 2429)
    MST:Out of Hay(POJ 2395)
    DP:Cow Exhibition(POJ 2184)(二维问题转01背包)
    《程序员修炼之道——从小工到专家》阅读笔记*part1
    Java课05
    Java课04
    Javaweb课堂测试
    Java课03
    Java课02
    回文判断
  • 原文地址:https://www.cnblogs.com/pyrene/p/6506552.html
Copyright © 2011-2022 走看看