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倍

  • 相关阅读:
    php 3des加密解密
    mysql 用命令导入导出
    ubuntu16.04对硬盘进行分区格式化并设置开机自动挂载
    nginx
    iostat (转https://www.cnblogs.com/ftl1012/p/iostat.html)
    zabbix
    zabbix
    mac 录屏
    利用elasticsearch-dump实现es索引数据迁移附脚本
    rdbtool
  • 原文地址:https://www.cnblogs.com/pyrene/p/6506552.html
Copyright © 2011-2022 走看看