美文网首页
Python:高阶函数-map/reduce/filter

Python:高阶函数-map/reduce/filter

作者: 泡泡坪 | 来源:发表于2018-12-06 23:01 被阅读1次

    map()

    map函数接收两个参数,一个是函数f,一个是Iterator,map在Iterable的每个元素上依次执行函数f,并把结果作为新的Iterator迭代器返回。例如:

    def f(x):
        return x * x
     
    result = map(f,[1,2,3])   #返回一个Iterator迭代器,可用for循环来访问
    for var in result:
        print(var)
    

    输出结果:

    1
    4
    9
    

    reduce()

    reduce函数接收两个参数,一个是函数f,一个是Iterator,其中函数f必须接收两个参数。reduce在Iterator的第一二个元素上执行函数f得到结果res,然后将结果res继续与第三个元素作为函数f的两个参数执行函数f,直到遍历完成。例如:

    from functools import reduce
    def f(x,y):
        return  x * y
     
    result = reduce(f,[1,2,3])  #返回一个值
    print(result)
    

    输出结果:

    6
    

    filter()

    filter函数也是Python常用的内置函数,用于过滤序列。与map()类似,fiter()也是接收两个参数:一个函数和一个序列,将函数作用在序列的每一个元素上,根据函数返回值True或False,来决定是否舍弃该元素,最终返回一个迭代器,内容是原序列的子序列。例如:

    def is_even(x):
        return x % 2 == 0
    l = filter(is_even,[0,1,2,3,4,5])
    print(l)
    for var in l:   #for循环遍历迭代器l
        print(var)
    

    执行结果:

    <filter object at 0x7f14037fcc50>
    0
    2
    4
    

    http://dblab.xmu.edu.cn/blog/1744-2/

    相关文章

      网友评论

          本文标题:Python:高阶函数-map/reduce/filter

          本文链接:https://www.haomeiwen.com/subject/bmaacqtx.html