在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
在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)
而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]
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入门教程学什么?
适合零基础人群学习的Python入门教程:博学谷的IT在线就业班有Python学习教程,课程主要讲解:Python核心编程、Linux基础、前端开发、Web开发、爬虫开发等内容。
7706
2019-07-24 11:54:07
数据分析培训学习多久?都学什么?
数据分析培训学习多久?以博学谷的Python数据分析与应用课程为例,学习数据分析只要22课时。那么学习内容有哪些呢?内容大概包括了Python数据分析的相关知识。感兴趣的小伙伴可以一起来看看课程介绍。
9724
2019-09-25 17:34:14
Python量化课程学什么?
Python可以满足所有计算要求除数学运算外,Python可以轻松编辑文字、列表等。使用Python进行简单的条件判断,学习NumPy中最重要的成员“多维数组”的创建和使用方法,运用Python函数和模块减少工作量。Python量化课程学什么?
5831
2019-11-21 11:11:42
入门学习Python看这篇文章就够了
每一个想学习Python的同学都会有自己的疑问。下面就是针对大家提问比较多的问题整理总结,希望对想要入行Python开发的小伙伴有一定的帮助。
4678
2020-05-18 14:42:19
列表标签有几种?分别是什么?
列表标签有几种?分别是什么?HTML 支持有序、无序和定义列表,无序列表是一个项目的列表,此列项目使用粗体圆点(典型的小黑圆圈)进行标记;有序列表也是一列项目,列表项目使用数字进行标记。
5323
2021-12-14 16:03:12