• python函数式编程


    函数式编程又叫做泛函编程,是一种“广播式”的编程。在python中,函数式编程主要有几个函数的使用构成:lambda()、map()、reduce()、filter()

    一。map函数

      假设有列表a=[1,2,3],要接列表中的每一个元素都加上2得到一个新的列表,使用“列表解析”,我们可以写:

    1 b = [x+2 for x in a]

      而利用map函数我们可以这样写:

    1 b = map(lambda x:x+2,a)
    2 b = list(b)

      在3.中需要使用list,而在2.中则不需要list这一步。原因是3.x中,map函数仅仅是创建一个待运行的命令,只有其他函数调用它才会返回结果.也就是说,我们首先定义一个函数,然后在使用map()函数将函数逐一应用到map列表中的每一个元素,最后返回一个数组。

      既然有了“列表解析”,为什么还要使用map呢,主要是“列表解析”的本质是for循环,速度很慢,而用map()函数,速度很快,它是c的底层来实现的。

    二。reduce()函数

      reduce()函数和map()函数相似,map是逐一遍历,而reduce()是递归计算。如,计算n的阶乘:

    reduce(lambda x,y:x*y ,range(1,n+1))

      上述命令在2.x中可以直接运行,但3.X中,需要导包(from fuctools import reduce),引入reduce.。计算过程是计算x*y的乘积,然后将乘积作为参数与第三个数字一起作为函数参数,最后返回计算结果

    s = 1
    for i in range(1,n+1):
        s = s*i

    三。filter()函数

      顾名思义,它是一个过滤器,用来筛选列表中符合条件的元素

    b = filter(lambda x: x>5 and x<8,range(10))
    b = list(b)  ##map一样

      总结,以上的所有函数都是为了加快运算速度。

  • 相关阅读:
    RabbitMQ 工作图解
    RabbitMQ常用命令
    搭建 .Net RabbitMQ 开发环境
    不使用第三个变量交换两个变量的值
    WEB编程 入门简单 进阶难
    C# 字符串的长度问题
    C# 反射
    C# 拼接字符串的几种方式和性能
    ASP.NET MVC 教程汇总
    SSIS中循环遍历组件[Foreach Loop Container]
  • 原文地址:https://www.cnblogs.com/wanghui1994/p/9902152.html
Copyright © 2020-2023  润新知