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

1、map函数

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

map(function_to_apply, list_of_inputs)

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

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

squared = []

for i in items:

squared.append(i**2)

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]

2、Filter函数

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循环,但它是⼀个内置函数,并且更快。

3、Reduce函数

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

from functools import reduce

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

# Output: 24

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

python中map和filter区别_Python中map、filter和reduce的使用总结相关推荐

  1. python post与get的区别_python中get和post有什么区别

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.sfkyty.com ...

  2. python进程线程协程区别_Python中 进程 线程 协程

    一.进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体:在 ...

  3. python多线程和多进程的区别_python中多线程与多进程的区别

    线程的概念: 线程是操作系统中进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程可以有多个线程,每条线程可以同时执行不同的任务.一个 ...

  4. python中str和int区别_python中eval与int的区别浅析

    python中eval和int的区别是什么?下面给大家介绍一下: 1.eval()函数 eval(<字符串>)能够以Python表达式的方式解析并执行字符串,并将返回结果输出.eval() ...

  5. python集合和字典的区别_Python中的字典和集合

    导语:本文章记录了本人在学习Python基础之数据结构篇的重点知识及个人心得,打算入门Python的朋友们可以来一起学习并交流. 本文重点: 1.掌握常见的字典创建,查询,判别方法: 2.了解字典中的 ...

  6. python属性和方法的区别_Python中几种属性访问的区别

    起步 python的提供一系列和属性访问有关的特殊方法:__get__, __getattr__, __getattribute__, __getitem__ .本文阐述它们的区别和用法. 属性的访问 ...

  7. python中sort和sorted区别_Python中的 sort 和 sorted的用法与区别

    今天在做一道题时,因为忘了Python中sort和sorted的用法与区别导致程序一直报错,找了好久才知道是使用方法错误的问题!现在就大致的归纳一下sort和sorted的用法与区别 1. sort: ...

  8. python属性和方法的区别_Python中几种属性访问的区别与用法详解

    起步 在Python中,对于一个对象的属性访问,我们一般采用的是点(.)属性运算符进行操作.例如,有一个类实例对象foo,它有一个name属性,那便可以使用foo.name对此属性进行访问.一般而言, ...

  9. python函数与方法的区别_python中函数和方法有哪些区别

    python中函数和方法有哪些区别 发布时间:2020-11-16 09:30:04 来源:亿速云 阅读:89 作者:小新 小编给大家分享一下python中函数和方法有哪些区别,相信大部分人都还不怎么 ...

  10. python包和库的区别_python中模块、包、库的区别和使用

    模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...

最新文章

  1. javascript_JavaScript疲劳疲劳
  2. 给字符数组赋值的方法
  3. 手把手教你学51单片机-c语言版期末考试,手把手从零教你学51单片机
  4. 权重可以当做概率幅吗?---用神经网络的收敛模拟机械波的波动
  5. 支付开发填坑记之支付宝
  6. 今日arXiv精选 | 23篇顶会论文:ICASSP / ICCV / CIKM / ICME / AAAI
  7. leetcode645. 错误的集合
  8. SQL SERVER 2005 显示行号
  9. 句句真研—每日长难句打卡Day18
  10. 【渝粤题库】广东开放大学 秘书理论与实务(1) 形成性考核
  11. BZOJ3997 TJOI2015组合数学(动态规划)
  12. 修复easyMule for Mac 2.0崩溃造成的任务丢失
  13. SpringBoot+Vue项目的PDF导出及给PDF文件盖章的功能示例
  14. 打印1000年到2000年之间的闰年
  15. Java读取数据库的数据并转换为json数据
  16. 推荐3款实用的PC端软件,工作生活两不误,每天5分钟悄悄成长
  17. 图像形态学处理——灰度梯度(Matlab)
  18. mybatispuls 如何通过时间进行范围查询
  19. 多视角学习 (Multi-View Learning)
  20. Python 将 mp3 导出为 ogg 格式

热门文章

  1. CS API 测试3
  2. html table tr 动态加减行操作
  3. 36. Element length 属性
  4. css3中3d旋转中rotatex,rotatey,rotatez的旋转正方向
  5. php中中文字符串的截取和获取长度 mb_substr() mb_strlen()
  6. 应用安全 - 工具使用 - Nmap
  7. 软件工程结对编程博客
  8. MySQL视图和事务
  9. 常见的几种数组排序方法
  10. Shell中的变量替换