在线客服
扫描二维码
下载博学谷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可行吗?其实Python可以说是最适合新手学习的编程语言。为什么这么说呢?难道学Python不需要什么基础吗?其实如果学习者有一定的计算机基础,学Python会更快,但是没基础也能学好Python,只要肯下功夫。大家了解了新手学Python的可行性之后,还要掌握零基础如何学习Python的方法,毕竟自信和决心只是学习的第一步。
6340
2019-08-19 13:38:17
学Python的理由有哪些?这四大理由足够了
学Python的理由有哪些?可能有人会说Python是一种计算机语言,具有简洁性、易读性、及可扩展性,相对于其他语言学起来会更加容易,目前应用也非常广泛等等。其实总结起来,学Python的理由不外乎四点,即丰富免费的模块库,新手入门上手快的学习优势,还有广泛的应用场景以及国家的重视和支持。因此这四大理由足够掀起全面学习Python的热潮。
5927
2020-04-15 11:35:41
为什么Python现在这么火?
Python可以说是目前最火的网红编程语言,虽然它在近几年在逐渐流行起来,但其实它已经发展了近三十年。那么,为什么Python现在这么火呢?一方面人工智能和大数据的崛起带红了Python,另一方面无论是软件开发者还是非编程工作者都发现了在当下这个时代掌握一门编程语言的必要性。而Python简洁的语法,让它备受学习者的青睐!
6204
2020-05-08 11:08:09
Python运算符总结
所有的编程语言本质就是在解决运算逻辑,通过各种算法实现想要的各种功能,因此在学习Python编程语言时,不仅要掌握各种变量类型,深刻理解函数式编程的原理,还要彻底搞懂各类运算符的使用。通过本片文章你可以了解到在Python编程开发中的各类运算符以及其使用方法。
6445
2020-06-08 16:31:37
Python 新版本中的 6 个新特性,你去体验了么?
两周之前(2021年10月4日),一个新的Python版本发布了,Python 3.10。在新的版本中,Python 添加了独特且有价值的功能,同时删除了一些旧功能。我们可以将任何新软件版本中添加或删除的功能归为多个类别,例如语法特性、添加到默认库或对现有特性的改进。
4368
2021-10-22 11:40:26
