• 1.python函数式编程-map函数


    编程方法论

    1. 面向过程
    2. 函数式
    3. 面向对象

    面向过程

    将编程过程拆分成多个步骤,在函数中按照每个步骤进行编程;

    函数式编程

    编程语言定义的函数+数学意义的函数

    1、不可变,不用变量保存状态,不修改变量;

    2、第一类对象,函数即变量---------高阶函数:把函数当做参数传递给另外一个函数;返回值中包含函数。(装饰器

    3、尾调用:在函数的最后一步调用另外一个函数(最后一行不一定是函数的最后一步)

      调用栈:在系统调用递归函数的时候不是最后一步(区别最后一行),则需要保留当前层的状态。如果是最后一步进入递归,则不用保留当前层状态,性能更强。(递归函数的优化则需要进入尾调用,进入尾递归

    函数:

    map:处理序列中的每个元素,得到的结果是一个“列表”,该“列表”元素个数及位置与原来一样

    filter:遍历序列中的每个元素,判断每个元素得到的布尔值,如果是True则留下来

    reduce:将多个数值合并到一块


    map函数

    将方法和要处理的数据通过参数传入函数中,在函数调用的时候可以指定不同的方法,方法更加灵活。

    1 num_1 = [1,2,3,10,5,7,9]
    2 def mapfunc(func,array):
    3     ret = []
    4     for i in array:
    5         ret.append(func(i))
    6     return ret
    7 
    8 print(mapfunc(lambda x:x+1,num_1))    #执行自增加一
    9 print(mapfunc(lambda x:x**2,num_1))    #执行二次方

    执行结果:

    [2, 3, 4, 11, 6, 8, 10]
    [1, 4, 9, 100, 25, 49, 81]
    

     map函数

    1 num_1 = [1,2,3,10,5,7,9]
    2 res = map(lambda x:x+1,num_1)   #res为迭代器,只能调用一次,一般使用list方法来查看迭代器的值
    3 print(res)
    4 print(list(res))

    执行结果:

    <map object at 0x000001F93A610160>
    [2, 3, 4, 11, 6, 8, 10]
    
  • 相关阅读:
    04、Unity_声音管理器
    StreamingAssets文件夹的读取异常
    Unity做360度的全景照片
    07.C#中如何排除/过滤/清空/删除掉字符串数组中的空字符串
    03、三种简单的计时器
    02、在层级未知情况下通过递归查找子物体
    Java中请优先使用try-with-resources而非try-finally
    Redis——入门学习笔记
    KafKa——学习笔记
    SpringBoot——学习笔记
  • 原文地址:https://www.cnblogs.com/chrrydot/p/9784981.html
Copyright © 2020-2023  润新知