zoukankan      html  css  js  c++  java
  • 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]
    
  • 相关阅读:
    java字符串实现正序和倒序输出
    暑假前挑战赛1—— A,B题解
    深搜
    poj 1200 Crazy Search
    poj 1840 Eqs (hash)
    Choose the best route
    一个人的旅行
    畅通工程续
    最短路基础算法
    完全背包问题
  • 原文地址:https://www.cnblogs.com/chrrydot/p/9784981.html
Copyright © 2011-2022 走看看