• 在线客服

  • 扫描二维码
    下载博学谷APP

  • 扫描二维码
    关注博学谷微信公众号

  • 意见反馈

原创 Python中map、filter和reduce的使用总结

发布时间:2020-06-26 11:11:53 浏览 4462 来源:博学谷 作者:照照

    Python中我们常常会遇到需要使用mapfilterreduce三大函数的情况,大家知道分别在什么情况下使用它们吗?下面我们来逐一学习并理解Pythonmapfilterreduce的使用,一起来看看吧!

     

    map、filter和reduce

     

    1map函数

     

    map函数的规范是,将⼀个函数映射到⼀个输⼊列表的所有元素上。

    map(function_to_apply, list_of_inputs)

    ⼤多数时候,我们要把列表中所有元素⼀个个地传递给⼀个函数,并收集输出。比如:

    items = [1, 2, 3, 4, 5]

    squared = []

    for i in items:

         squared.append(i**2)

    Map函数可以让我们⽤⼀种简单⽽漂亮得多的⽅式来实现,如下:

    items = [1, 2, 3, 4, 5]

    squared = list(map(lambda x: x**2, items))

    ⼤多数时候,我们使⽤匿名函数lambdas来配合map函数,不仅⽤于⼀列表的输⼊, 我们甚⾄可以⽤于⼀列表的函数!

    def multiply(x):

                 return (x*x)

    def add(x):

                  return (x+x)

    funcs = [multiply, add]

    for i in range(5):

         value = map(lambda x: x(i), funcs)

         print(list(value))

    # Output:

    # [0, 0]

    # [1, 2]

    # [4, 4]

    # [9, 6]

    # [16, 8]

     

    2Filter函数

     

    Filter函数很好理解,就是filter过滤列表中的元素,并且返回⼀个由所有符合要求的元素所构成的列表,符合要求即函数映射到该元素时返回值为True。下面具一个简单的例子来帮助大家理解:

    number_list = range(-5, 5)

    less_than_zero = filter(lambda x: x < 0, number_list)

    print(list(less_than_zero))

    # Output: [-5, -4, -3, -2, -1]

    这个filter类似于⼀个for循环,但它是⼀个内置函数,并且更快。

     

    3Reduce函数

    当需要对⼀个列表进⾏⼀些计算并返回结果时,Reduce 是个⾮常有⽤的函数。举个例⼦,当你需要计算⼀个整数列表的乘积时。通常在 Python 中你可能会使⽤基本的 for 循环来完成这个任务。现在我们来试试 reduce

    from functools import reduce

    product = reduce( (lambda x, y: x * y), [1, 2, 3, 4] )

    # Output: 24

     

    Pythonmapfilterreduce的使用总结就讲到这里了,大家都掌握精华的内容了吗?总的来说,mapfilterreduce三大函数对函数式编程来讲,是极为方便快捷的,推荐大家都尝试着多使用看看,一定能发现新的大陆!

    申请免费试学名额    

在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!

上一篇: 学好了Python可以干什么? 下一篇: set数据结构基础学习笔记

相关推荐 更多

热门文章

  • 前端是什么
  • 前端开发的工作职责
  • 前端开发需要会什么?先掌握这三大核心关键技术
  • 前端开发的工作方向有哪些?
  • 简历加分-4步写出HR想要的简历
  • 程序员如何突击面试?两大招带你拿下面试官
  • 程序员面试技巧
  • 架构师的厉害之处竟然是这……
  • 架构师书籍推荐
  • 懂了这些,才能成为架构师
  • 查看更多

扫描二维码,了解更多信息

博学谷二维码